System and method for controlling cloud and virtualized data centers in an intelligent workload management system

ABSTRACT

The system and method for controlling cloud and virtualized data centers described herein may include a computing environment having a model-driven, service-oriented architecture for creating collaborative threads to manage workloads, and further to creating cloud images having embedded management agents and identity services for validating the cloud images prior to deployment into the cloud and virtualized data centers and controlling, monitoring, and auditing activity associated with the cloud images following deployment into the cloud and virtualized data centers.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/264,562, entitled “System and Method forIntelligent Workload Management,” filed on Nov. 25, 2009, the contentsof which are hereby incorporated by reference in entirety.

In addition, this application is further related to co-pending U.S.patent application Ser. No. ______, entitled “System and Method forIntelligent Workload Management,” filed on ______, co-pending U.S.patent application Ser. No. ______, entitled “System and Method forRecording Collaborative Information Technology Processes in anIntelligent Workload Management System,” filed on ______, co-pendingU.S. patent application Ser. No. ______, entitled “System and Method forManaging Information Technology Models in an Intelligent WorkloadManagement System,” filed on ______, co-pending U.S. patent applicationSer. No. ______, entitled “System and Method for Discovery Enrichment inan Intelligent Workload Management System,” filed on ______, co-pendingU.S. patent application Ser. No. ______, entitled “System and Method forProviding Service Layer Blueprints in an Intelligent Workload ManagementSystem,” filed on ______, and co-pending U.S. patent application Ser.No. ______, entitled “System and Method for Providing Scorecards toVisualize Services in an Intelligent Workload Management System,” filedon ______, each of which further claim benefit to U.S. ProvisionalPatent Application Ser. No. 61/264,562, and each of which are herebyfurther incorporated by reference in entirety.

FIELD OF THE INVENTION

The invention relates to a system and method for controlling cloud andvirtualized data centers in an intelligent workload management, and inparticular, to a computing environment having a model-driven,service-oriented architecture for creating collaborative threads tomanage workloads, and further to creating cloud images having embeddedmanagement agents and identity services for validating the cloud imagesprior to deployment into the cloud and virtualized data centers andcontrolling, monitoring, and auditing activity associated with the cloudimages following deployment into the cloud and virtualized data centers.

BACKGROUND OF THE INVENTION

“Cloud computing” generally refers to a computing environment withdynamically scalable and often virtualized resources, which aretypically provided as services over the Internet. For example, cloudcomputing environments often employ the concept of virtualization as apreferred paradigm for hosting workloads on any appropriate hardware.The cloud computing model has become increasingly viable for manyenterprises for various reasons, including that the cloud infrastructuremay permit information technology resources to be treated as utilitiesthat can be automatically provisioned on demand, while also limiting thecost of services to actual resource consumption. Moreover, consumers ofresources provided in cloud computing environments can leveragetechnologies that might otherwise be unavailable. Thus, as cloudcomputing and cloud storage become more pervasive, many enterprises willfind that moving data center to cloud providers can yield economies ofscale, among other advantages.

However, while much of the information technology industry moves towardcloud computing and virtualization environments, existing systems tendto fall short in adequately addressing concerns relating to managing orcontrolling workloads and storage in such environments. For example,cloud computing environments are generally designed to support genericbusiness practices, meaning that individuals and organizations typicallylack the ability to change many aspects of the platform. Moreover,concerns regarding performance, latency, reliability, and securitypresent significant challenges, as outages and downtime can lead to lostbusiness opportunities and decreased productivity, while the genericplatform may present governance, risk, and compliance concerns. In otherwords, once organizations deploy workloads beyond the boundaries oftheir data centers, lack of visibility into the computing environmentmay result in significant management problems.

While these types of problems tend to be pervasive in cloud computingand virtualization environments due to the lack of transparency,existing systems for managing and controlling workloads that arephysically deployed and/or locally deployed in home data centers tend tosuffer from many similar problems. In particular, information technologyhas traditionally been managed in silos of automation, which are oftendisconnected from one another. For example, help desk systems typicallyinvolve a customer submitting a trouble ticket to a remedy system, witha human operator then using various tools to address the problem andclose the ticket, while monitoring systems that watch the infrastructureto remediate problems may remain isolated from the interaction betweenthe customer and the help desk despite such interaction being relevantto the monitoring system's function.

As such, because existing systems for managing infrastructure workloadsoperate within distinct silos that typically do not communicate with oneanother, context that has been exchanged between two entities can oftenbe lost when the workload moves to the next step in the chain. Whenissues surrounding workload management are considered in the context ofbusiness objectives, wherein information technology processes andbusiness issues collectively drive transitions from one silo to another,modern business tends to move at a speed that outpaces informationtechnology's ability to serve business needs. Although emerging trendsin virtualization, cloud computing, appliances, and other models fordelivering services have the potential to allow information technologyto catch up with the speed of business, many businesses lack theknowledge needed to intelligently implement these new technologies.

For example, emerging service delivery models often lead to deployedservices being composed and aggregated in new and unexpected ways. Inparticular, rather than designing and modeling systems from the groundup, new functionality is often generated on-the-fly with complexbuilding blocks that tend to include various services and applicationsthat have traditionally been isolated and stand-alone. As such, eventhough many emerging service delivery models provide administrators andusers with a wider range of information technology choices than haveever before been available, the diversity in technology often compoundsbusiness problems and increases the demand for an agile infrastructure.Thus, despite the advantages and promise that new service deliverymodels can offer businesses, existing systems tend to fall short inproviding information technology tools that can inform businesses on howto intelligently implement an information technology infrastructure in amanner that best leverage available technology to suit the particularneeds of a business.

SUMMARY OF THE INVENTION

According to one aspect of the invention, a system and method forintelligent workload management may generally provide a computingenvironment having a fluid architecture, whereby the computingenvironment may create common threads to manage workloads that convergeinformation relating to user identities and access credentials,provisioned and requested services, and physical and virtualinfrastructure resources, among other things. In one implementation,services provided in the computing environment may generally includevarious aggregated physical and/or virtual resources, while applicationsmay include various aggregated services and workloads may includevarious compositions of whole services, separate services, and/orsub-services that work together. For example, in response to a userrequesting a service that performs a particular function or application,the intelligent workload management system (or alternatively “theworkload management system”) may create a workload to manageprovisioning the user with a tuned appliance configured to perform theparticular function or application, whereby the tuned appliance mayprovide the requested service for the user. To manage the workload, theworkload management system may create a resource store that points to astorage location for the appliance, declare a service level agreementand any runtime requirements that constrain deployment for theappliance, obtain a certificate that provides attestation tokens for theuser and the appliance, and create a profile that provides an audittrail of actual lifecycle behavior for the appliance (e.g., events andperformance metrics relating to the appliance). Thus, workflows createdin the computing environment may converge various sources of informationwithin a common thread, which the workload management system may use tomanage the workload (e.g., actual metrics for a particular workload canbe compared to anticipated metrics for the workload to determine whethervarious services underlying the workload function as intended).

According to one aspect of the invention, the system and method forintelligent workload management may operate in a model-drivenarchitecture, which may merge information relating to user identitieswith services that may be running in an information technologyinfrastructure. As such, the information merged in the model-drivenarchitecture may be referenced to determine specific users ororganizational areas within the infrastructure that may be impacted inresponse to a particular change to the infrastructure model. Thus,whereas information technology has traditionally been managed withindisparate silos, where context exchanged between any two entities may belost at the next step in the chain, the model-driven architecture maytrack context for information technology workloads from start to finish.As such, tracking context for the information technology workloads mayprovide audit trails that can then be used to identify a relevant user,application, system, or other entity that can provide assistance with aparticular issue. Moreover, in the context of managing workloads forvirtualized services, where different users typically have tocommunicate with one another on-demand, the audit trail that themodel-driven architecture enables may track end-to-end workloadactivities and thereby provide visibility and notice to users,applications, systems, services, or any other suitable entity that maybe impacted by the workload.

According to one aspect of the invention, the system and method forintelligent workload management may enable agile and flexible managementfor an information technology infrastructure, which may enable theinfrastructure to move at the speed of modern business. For example, thesystem and method for intelligent workload management may furtheroperate in a service-oriented architecture unifying variousheterogeneous technologies, which may provide businesses with thecapability to deploy information technology resources in a manner thatcan meet business objectives. For example, the service-orientedarchitecture may provide adaptable, interoperable, and user-friendlyinformation technology tools to manage the infrastructure in a mannerthat addresses many typical business challenges that informationtechnology organizations face. For example, while the model-drivenarchitecture may employ virtualization features to provide manageableworkloads that can move efficiently through the infrastructure, theservice-oriented architecture may merge different technologies toprovide various coordinated systems that can cooperate to optimallyexecute portions of an overall orchestrated workload. As such, themodel-driven and service-oriented architectures may collectively derivedata from the information technology infrastructure, which may informintelligent information technology choices that meet the needs ofbusinesses and users.

According to one aspect of the invention, the system and method forintelligent workload management may be used to manage workloads createdin response to service requests. For example, any suitable user,application, system, or other entities may request a service from theworkload management system, wherein the request may include a desiredperformance level (or service level) for the service, any components orcriteria required for the service, comments to provision the service ina certain manner, or any other suitable information for the requestedservice. In response to receiving the service request, human and/orautomated approvers (or service delivery managers) may collaborativelymanage the service request and determine whether the service can beprovisioned as requested. Furthermore, the approvers may providefeedback on the service provisioning decision, which may create aninteractive collaborative “conversation” between requesters, approvers,and other entities in the management thread. In one implementation,various security policies may be built into the model to automaticallyapprove or deny certain requests, wherein the security policies may bedynamically updated in response to handling similar requests (e.g., arequest for Bit Torrent storage may be automatically denied because aparticular security policy indicates that peer-to-peer file sharingviolates a company policy).

According to one aspect of the invention, services provisioned in theworkload management system may include any suitable combination ofphysical infrastructure resources and virtualized infrastructureresources. For example, to provision virtualized services that canabstract underlying physical platforms and share computing resources ina manner that may address many needs for immediacy in businessenvironments, the workload management system may manage physicalinfrastructure resources and virtualized infrastructure resources tosupport provisioning virtualized services. Thus, the service-orientedarchitecture employed in the workload management system may enablemanagement for the physical infrastructure resources (e.g.,rack-mounting, configuring, and otherwise physically installing servers,storage resources, and other devices), and may further enable managementfor the virtualized infrastructure resources (e.g., pre-configuringprovisioned services with identity management features, denying,flagging, or auditing service requests from unauthorized entities,etc.). Moreover, the workload management system may be considered aservice in that the workload management service may be built dynamicallyin response to service requests (e.g., because a managementinfrastructure can introduce computational burdens just as any otherresource, limiting the existence of the workload managementinfrastructure to an on-demand service can free computational resourcesfor other tasks having a greater need for immediacy).

According to one aspect of the invention, to manage collaborativeservice provisioning in contexts that combine physical and virtualizedresources, the workload management system may store a history ofinteraction between requesters, approvers, and other entities in serviceprovisioning threads, and may further record, log, and save traffic andactivity between such entities in the service provisioning threads. Assuch, various processes that occur during service provisioning may berecorded and injected into a real-time stream that can subsequently beplayed back, thereby capturing the service provisioning processes as awhole, including any responses that human and/or automated entities mayprovide during the collaborative process. During processes forcollaboratively managing the information technology infrastructure, theworkload management system may expose portions of the infrastructuremodel to entities involved in the management processes. In oneimplementation, the workload management system may expose “just enoughcontext” to entities involved in the management processes, whereby theinvolved entities may view the respective portions of the infrastructuremodel for which such entities have management responsibility (e.g.,prior to implementing any particular change to the infrastructure, theworkload management system may query the model and determine an impactof the change, notify impacted entities, etc.).

According to one aspect of the invention, virtualized servicesprovisioned in the workload management system may further includeinjection points for adding and/or removing information from theprovisioned services. For example, any particular virtualized servicemay generally include a layered architecture that includes injectionpoints for inserting “zero residue” management agents that can managethe service and ensure that the service functions correctly. Thus, inone implementation, zero residue management agents may be insertedwithin virtualized services at build time, run time, or any othersuitable point in a lifecycle for the virtualized services, wherein theparticular management agents inserted within the virtualized servicesmay depend on a type of management required. For example, the workloadmanagement system may analyze a configuration of the service, alifecycle point for the service, or other suitable information for theservice to derive a recipe of the management agents to be injected(e.g., the recipe may depend on a required service level for theservice, a current operational state for the infrastructure model,services running in the infrastructure, a type of management requiredfor the running services, etc.).

Other objects and advantages of the invention will be apparent to thoseskilled in the art based on the following drawings and detaileddescription.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates a block diagram of an exemplary model-drivenarchitecture in a system for intelligent workload management, accordingto one aspect of the invention.

FIG. 1B illustrates a block diagram of an exemplary service-orientedarchitecture in the system for intelligent workload management,according to one aspect of the invention.

FIG. 2 illustrates a flow diagram of an exemplary method for intelligentworkload management, according to one aspect of the invention.

FIG. 3 illustrates an exemplary system for generating single sign-onworkload identities in the workload management system, according to oneaspect of the invention.

FIG. 4 illustrates an exemplary method for generating single sign-onworkload identities in the workload management system, according to oneaspect of the invention.

FIG. 5A illustrates a block diagram of an exemplary service distributionthat can be managed with zero residue management agents in theintelligent workload management system, while FIG. 5B illustrates anexemplary lifecycle for a service distribution managed with the zeroresidue management agents, according to one aspect of the invention.

FIG. 6 illustrates a flow diagram of an exemplary method for managingdifferent modes of a service distribution lifecycle with the zeroresidue management agents in the intelligent workload management system,according to one aspect of the invention.

FIG. 7 illustrates a block diagram of an exemplary system forcontrolling cloud and virtualized data centers in the intelligentworkload management system, according to one aspect of the invention.

FIG. 8 illustrates a flow diagram of an exemplary method for controllingcloud and virtualized data centers in the intelligent workloadmanagement system, according to one aspect of the invention.

DETAILED DESCRIPTION

According to one aspect of the invention, FIG. 1A illustrates anexemplary model-driven architecture 100A in a system for intelligentworkload management, while FIG. 1B illustrates an exemplaryservice-oriented architecture 100B in the system for intelligentworkload management. In one implementation, the model-drivenarchitecture 100A shown in FIG. 1A and the service-oriented architecture100B shown in FIG. 1B may include various components that operate in asubstantially similar manner to provide the functionality that will bedescribed in further detail herein. Thus, any description providedherein for components having identical reference numerals in FIGS. 1Aand 1B will be understood as corresponding to such components in bothFIGS. 1A and 1B, whether or not explicitly described.

In one implementation, the model-driven architecture 100A illustrated inFIG. 1A and the service-oriented architecture 100B illustrated in FIG.1B may provide an agile, responsive, reliable, and interoperableinformation technology environment, which may address various problemsassociated with managing an information technology infrastructure 110(e.g., growing revenues and cutting costs, managing governance, risk,and compliance, reducing times to innovate and deliver products tomarkets, enforcing security and access controls, managing heterogeneoustechnologies and information flows, etc.). To that end, the model-drivenarchitecture 100A and the service-oriented architecture 100B may providea coordinated design for the intelligent workload management system (oralternatively “the workload management system”), wherein the coordinateddesign may integrate technologies for managing identities, enforcingpolicies, assuring compliance, managing computing and storageenvironments, providing orchestrated virtualization, enablingcollaboration, and providing architectural agility, among other things.The model-driven architecture 100A and the service-oriented architecture100B may therefore provide a flexible framework that may enable theworkload management system to allocate various resources 114 in theinformation technology infrastructure 110 in a manner that balancesgovernance, risk, and compliance with capacities for internal andexternal resources 114. For example, as will be described in furtherdetail herein, the workload management system may operate within theflexible framework that the model-driven architecture 100A and theservice-oriented architecture 100B to deliver information technologytools for managing security, performance, availability, and policyobjectives for services provisioned in the information technologyinfrastructure 110.

Identity Management

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may enable managing identities in the information technologyinfrastructure 110. In particular, managing identities may present animportant concern in the context of managing services in the informationtechnology infrastructure 110 because security, performance,availability, policy objectives, and other variables may have differentimportance for different users, customers, applications, systems, orother resources 114 that operate in the information technologyinfrastructure 110. As such, the model-driven architecture 100A and theservice-oriented architecture 100B may include various components thatenable identity management in the information technology infrastructure110.

For example, in one implementation, the workload management system mayinclude an access manager 120 (e.g., Novell Access Manager), which maycommunicate with an identity vault 125 and control access to content,applications, services, and other resources 114 in the informationtechnology infrastructure 110. In one implementation, the access manager120 may enforce various policy declarations to provide authenticationservices for any suitable component in the information technologyinfrastructure 110. For example, the identity vault 125 may includevarious directories that organize user accounts, roles, policies, andother identity information that the access manager 120 can reference togenerate authorization decisions. The access manager 120 and theidentity vault 125 may further support federated user identities,wherein a user at any particular client resource 115 may submit singlesign-on authentication credentials to the access manager 120, which maythen control access to any suitable resource 114 in the informationtechnology infrastructure 110 with the single sign-on authenticationcredentials (e.g., user names, identifiers, passwords, smart cards,biometrics, etc.). Moreover, the identity information stored in theidentity vault 125 may be provided to a synchronization engine 150,whereby the synchronization engine 150 may provide interoperable andtransportable identity information throughout the architecture (e.g.,via an identity fabric within an event bus 140 that manages transportthroughout the architecture).

In one implementation, providing the identity information stored in theidentity vault 125 to the synchronization engine 150 may form portableidentities that correspond to independent digital representations forvarious users, applications, systems, or other entities that interactwith the information technology infrastructure 110. In particular, theidentities maintained in the synchronization engine 150 may generallyinclude abstractions that can provide access to authoritativeattributes, active roles, and valid policies for entities that theidentity abstractions represent. Thus, synchronizing the identityinformation stored in the identity vault 125 with the synchronizationengine 150 may provide independent and scalable digital identities thatcan be transported across heterogeneous applications, services,networks, or other systems, whereby the workload management system mayhandle and validate the digital identities in a cooperative,interoperable, and federated manner.

In one implementation, the identities stored in the identity vault 125and synchronized with the synchronization engine 150 may be customizedto define particular attributes and roles that the identities mayexpose. For example, a user may choose to create one identity thatexposes every attribute and role for the user to applications, services,or other systems that reside within organizational boundaries, anotheridentity that limits the attributes and roles exposed to certain serviceproviders outside the organizational boundaries, and another identitythat provides complete anonymity in certain contexts. The identitiesmaintained in the synchronization engine 150 may therefore provideawareness over any authentication criteria that may be required toenable communication and collaboration between entities that interactwith the workload management system. For example, the synchronizationengine 150 may include a service that can enforce policies controllingwhether certain information stored in the identity vault 125 can beshared (e.g., through the access manager 120 or other informationtechnology tools that can manage and customize identities).

In one implementation, the workload management system may further manageidentities in a manner that enables infrastructure workloads to functionacross organizational boundaries, wherein identities for various users,applications, services, and other resources 114 involved ininfrastructure workloads may be managed with role aggregation policiesand logic that can support federated authentication, authorization, andattribute services. For example, in one implementation, the accessmanager 120, the identity vault 125, and the synchronization engine 150may manage identity services externally to applications, services, andother resources 114 that consume the identities, which may enable theworkload management system to control access to services for multipleapplications using consistent identity interfaces. In particular, theaccess manager 120, the identity vault 125, and the synchronizationengine 150 may define standard interfaces for managing the identityservices, which may include authentication services, push authorizationservices (e.g., tokens, claims, assertions, etc.), pull authorizationservices (e.g., requests, queries, etc.), push attribute services (e.g.,updates), pull attribute services (e.g., queries), and audit services.

As such, in one implementation, the workload management system mayemploy the identity services provided in the model-driven architecture100A and the service-oriented architecture 100B to apply policies forrepresenting and controlling roles for multiple identities within anyparticular session that occurs in the information technologyinfrastructure 110. For example, in response to a session that includesa user logging into a client machine 115 and invoking a backup service,the workload management system may manage the session with multipleidentities that encompass the user, the backup service, and the clientmachine 115. The workload management system may further determine thatthe identity for the client machine 115 represents an unsecured machinethat resides outside an organizational firewall, which may result in theworkload management system retrieving a policy from the identity vault125 and/or the synchronization engine 150 and applying the policy to thesession (e.g., the policy may dynamically prevent the machine 115 andthe user from being active in the same session). Thus, the workloadmanagement system may manage multiple identities that may be involved inany particular service request to control and secure access toapplications, services, and other resources 114 in the informationtechnology infrastructure 110.

In one implementation, the model-driven architecture 100A and theservice-oriented architecture 100B may further provide identity servicesfor delegating rights in delegation chains that may involve variousdifferent levels of identities. In particular, any particular user mayhave various roles, attributes, or other identities that define variousrights for the user. As such, in one implementation, the rightsdelegation identity service may enable the user to delegate atime-bounded subset of such rights to a particular service, wherein theservice can then make requests to other services on behalf of the userduring the delegated time. For example, a user may delegate rights to abackup service that permits the backup service to read a portion of aclustered file system 195 during a particular time interval (e.g., 2a.m. to 3 a.m.). In response to the file system 195 receiving the readrequest from the backup service, the identity services may enable thefile system 195 to audit identities for the backup service and the user,and further to constrain read permissions within the file system 195based on the relevant rights defined by the identities for the backupservice for the user.

In one implementation, the model-driven architecture 100A and theservice-oriented architecture 100B may further provide identity servicesfor defining relative roles, wherein relative roles may be defined wherea principal user, application, service, or other entity can only assumea particular role for a particular action when a target of the actionhas a particular set of identities. For example, a user having a doctorrole may only assume a doctor-of-record relative role if an identity fora target of the doctor-of-record action refers to one of the user'spatients. In another example, applications may request controlled accessto information about an identity for a certain user, wherein theapplication may, retrieve the requested information directly from theaccess-controlled identity for the user. In particular, the workloadmanagement system may determine the information requested by theapplication and create a workload that indicates to the user theinformation requested by the application and any action that theapplication may initiate with the requested information. The user maythen make an informed choice about whether to grant the applicationaccess to the requested information. Thus, having identities to enableapplications may eliminate a need for application-specific data storageor having the application access separate a directory service or anotheridentity information source.

Thus, in the model-driven architecture 100A and the service-orientedarchitecture 1008, the identity management services may create craftedidentities combined from various different types of identity informationfor various users, applications, services, systems, or other informationtechnology resources 114. In one implementation, while the identityinformation may generally be stored and maintained in the identity vault125, the identity information can be composed and transformed throughthe access manager 120 and/or the synchronization engine 150, with theresulting identity information providing authoritative statements forrepresented entities that span multiple authentication domains withinand/or beyond boundaries for the information technology infrastructure110. For example, an identity for a user may be encapsulated within atoken that masks any underlying credential authentication, identityfederation, and attribute attestation. Moreover, in one implementation,the identity services may further support identities that outliveentities that the identities represent and multiple identity subsetswithin a particular identity domain or across multiple identity domains.As such, the identity services provided in the model-driven architecture100A and the service-oriented architecture 100B may include variousforms of authentication, identifier mapping, token transformation,identity attribute management, and identity relationship mapping.

Policy Enforcement

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may enable enforcing policies in the information technologyinfrastructure 110. In particular, enforcing policies may present animportant concern in the context of managing services in the informationtechnology infrastructure 110 because policies may be driven frommultiple hierarchies and depend on operational, legislative, andorganizational requirements that can overlap, contradict, and/oroverride each other. As such, the model-driven architecture 100A and theservice-oriented architecture 100B may include various components fordefining policies in standardized languages that can be translated,merged, split, or otherwise unified as needed. To that end, the workloadmanagement system may have multiple policy decision points and policydefinition services for consistently managing and enforcing policies inthe information technology infrastructure 110

As such, in one implementation, the model-driven architecture 100A andthe service-oriented architecture 100B may provide standard policylanguages and service interfaces that enable the workload managementsystem to make consistent decisions based on flexible user needs. Inparticular, any suitable resource 114 (including workloads andcomputational infrastructure) may be provided with access tostandardized instrumentation that provides knowledge regardinginformation that may be available, desired, or allowed in the workloadmanagement system. In one implementation, the workload management systemmay invoke various cooperating policy services to determine suitablephysical resources 114 a (e.g., physical servers, hardware devices,etc.), virtualized resources 114 b (e.g., virtual machine images,virtualized servers, etc.), configuration resources 114 c (e.g.;management agents, translation services, etc.), storage resources (e.g.,the clustered file system 195, one or more databases 155, etc.), orother resources 114 for a particular workload. For example, thesynchronization engine 150 may dynamically retrieve various policiesstored in the databases 155, and an event audit service 135 b may thenevaluate the policies maintained in the synchronization engine 150independently from services that subsequently enforce policy decisions(e.g., the event audit service 135 b may determine whether the policiespermit access to certain information for a particular application andthe application may then enforce the policy determination).

In one implementation, separating policy evaluation within the eventaudit service 135 b from policy enforcement within consuming servicesmay enable the workload management system to access the consumingservices and manage policy-based control for the service in anindependent and simultaneous manner. The event audit service 135 b mayinclude a standardized policy definition service that can be used todefine policies that span multiple separate application and managementdomains. For example, in one implementation, the policy definitionservice may create, manage, translate, and/or process policiesseparately from other service administration domains and interfaces. Assuch, the policy definition service may provide interoperability for theseparate domains and interfaces, and may further enable complianceservices that may be provided in a correlation system 165 andremediation services that may be provided in a workload service 135 a.

In one implementation, to ensure correct and effective policy decisions,the policy definition service provided within the event audit service135 b may be configured to obtain data relating to a current state andconfiguration for resources 114 managed in the infrastructure 110 inaddition to data relating to dependencies or other interactions betweenthe managed resources 114. For example, a management infrastructure 170may include a discovery engine 180 b that dynamically monitors variousevents that the infrastructure 110 generates and pushes onto the eventbus 140, which may include an event backplane for transporting theevents. Moreover, the discovery engine 180 b may query theinfrastructure 110 to determine relationships and dependencies amongusers, applications, services, and other resources 114 in theinfrastructure 110. As such, the discovery engine 180 b may monitor theevent bus 140 to obtain the events generated in the infrastructure 110and synchronize the events to the synchronization engine 150, and mayfurther synchronize information relating to the relationships anddependencies identified in the infrastructure 110 to the synchronizationengine 150. In one implementation, the event audit service 135 b maythen evaluate any events, resource relationships, resource dependencies,or other information describing the operational state and theconfiguration state of the infrastructure 110 in view of any relevantpolicies and subsequently provide any such policy evaluations torequesting entities.

In one implementation, the policy definition service may includestandard interfaces for defining policies in terms of requirements,controls, and rules. For example, the requirements may generally beexpressed in natural language in order to describe permittedfunctionality, prohibited functionality, desirable functionality, andundesirable functionality, among other things (e.g., the event auditservice 135 b may capture legislative regulations, business objectives,best practices, or other policy-based requirements expressed in naturallanguage). The controls may generally associate the requirements toparticular objects that may be managed in the workload managementsystem, such as individual users, groups of users, physical resources114 a, virtualized resources 114 b, or any other suitable object orresource 114 in the infrastructure 110. In one implementation, thepolicy definition service may further define types for the controls. Forexample, the type may include an authorization type that associates anidentity with a particular resource 114 and action (e.g., for certainidentities, authorizing or denying access to a system or a file,permission to alter or deploy a policy, etc.), or the type may includean obligation type that mandates a particular action for an identity.

Thus, in one implementation, translating requirements into controls maypartition the requirements into multiple controls that may definepolicies for a particular group of objects. Furthermore, rules may applycertain controls to particular resources 114, wherein rules mayrepresent concrete policy definitions. For example, the rules may betranslated directly into a machine-readable and machine-executableformat that information technology staff may handle and that the eventaudit service 135 b may evaluate in order to manage policies. In oneimplementation, the rules may be captured and expressed in any suitabledomain specific language, wherein the domain specific language mayprovide a consistent addressing scheme and data model to instrumentpolicies across multiple domains. For example, a definitive softwarelibrary 190 may include one or more standardized policy libraries fortranslating between potentially disparate policy implementations, whichmay enable the event audit service 135 b to provide federated policiesinteroperable across multiple different domains. As such, the rules thatrepresent the policy definitions may include identifiers for anoriginating policy implementation, which the policy definition servicemay then map to the controls that the rules enforce and to the domainspecific policy language used in the workload management system (e.g.,through the definitive software library 190).

Compliance Assurance

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may enable monitoring for compliance assurances in the informationtechnology infrastructure 110. In particular, compliance assurance maypresent an important concern in the context of managing services in theinformation technology infrastructure 110 because policy enforcementencompasses issues beyond location, access rights, or other contextualinformation within the infrastructure (e.g., due to increasing mobilityin computing environments). As such, the model-driven architecture 100Aand the service-oriented architecture 100B may define metadata thatbounds data to characteristics of data. To that end, the workloadmanagement system may employ a standard metadata format to provideinteroperability between policies from multiple organizations to enablethe policies to cooperate with one another and provide policy-basedservice control. For example, certain infrastructure workloads mayexecute under multiple constraints defined by users, the infrastructure110, sponsoring organizations, or other entities, wherein complianceassurance may provide users with certification that the workloads wereproperly assigned and executed according to the constraints. In anotherexample, sponsoring organizations and governing bodies may definecontrol policies that constrain workloads, wherein compliance assurancein this context may include ensuring that only authorized workloads havebeen executed against approved resources 114.

As such, in one implementation, the model-driven architecture 100A andthe service-oriented architecture 100B may provide preventativecompliance assurance through a compliance management service thatsupports remediation in addition to monitoring and reporting. Forexample, when workloads move from data centers internal to theinfrastructure 110 into third party processing centers, cloud computingenvironments, or other environments having reusable computing resourcepools where services can be relocated, the workload management systemmay generate compliance reports 145 that indicate whether anyconstraints defined for the workloads have been satisfied (e.g., thatauthorized entities perform the correct work in the correct manner, asdefined within the workloads). Thus, compliance may generally be definedto include measuring and reporting on whether certain policieseffectively ensure confidentiality and availability for informationwithin workloads, wherein the resulting compliance reports 145 maydescribe an entire process flow that encompasses policy definition,relationships between configurations and activities that do or do notcomply with the defined policies, and identities of users, applications,services, systems, or other resources 114 involved in the process flow.

In one implementation, the workload management system may provide thecompliance management service for workloads having specificationsdefined by users, and further for workloads having specificationsdefined by organizations. For example, users may generally definevarious specifications to identify operational constraints and desiredoutcomes for workloads that the users create, wherein the compliancemanagement service may certify to the users whether or not theoperational constraints and desired outcomes have been correctlyimplemented. With respect to organizational workloads, organizations maydefine various specifications identifying operational constraints anddesired outcomes for ensuring that workloads comply with governmentalregulations, corporate best practices, contracts, laws, and internalcodes of conduct. Thus, the compliance management service may integratethe identity management services and the policy definition servicedescribed above to provide the workload management system with controlover configurations, compliance event coverage, and remediation servicesin the information technology infrastructure 110.

In one implementation, the compliance management service may operatewithin a workload engine 180 a provided within the managementinfrastructure 170 and/or a workload service 135 b in communication withthe synchronization engine 150. The workload engine 180 a and/or theworkload service 135 b may therefore execute the compliance managementservice to measure and report on whether workloads comply with relevantpolicies, and further to remediate any non-compliant workloads. Forexample, the compliance management service may use the integratedidentity management services to measure and report on users,applications, services, systems, or other resources 114 that may beperforming operational activity that occurs in the informationtechnology infrastructure 110. In particular, the compliance managementservice may interact with the access manager 120, the identity vault125, the synchronization engine 150, or any other suitable source thatprovides federated identity information to retrieve identities for theentities performing the operational activity, validate the identities,determine relationships between the identities, and otherwise map theidentities to the operational activity. For example, in oneimplementation, the correlation system 165 may provide analytic servicesto process audit trails for any suitable resource 114 (e.g., correlatingthe audit trails and then mapping certain activities to identities forresources 114 involved in the activities). Furthermore, in response tothe correlation system 165 processing the audit trails and determiningthat certain policies have been violated, the correlation system 165 mayinvoke one or more automated remediation workloads to initiateappropriate action for addressing the policy violations.

In one implementation, the compliance management service may further usethe integrated policy definition service to monitor and report on theoperational activity that occurs in the information technologyinfrastructure 110 and any policy evaluation determinations that theevent audit service 135 b generates through the policy definitionservice. For example, in one implementation, the workload engine 180 aand/or the workload service 135 b may retrieve information from aconfiguration management database 185 a or other databases 155 thatprovide federated configuration information for managing the resources114 in the information technology infrastructure 110. The workloadengine 180 a and/or the workload service 135 b may therefore execute thecompliance management service to perform scheduled and multi-stepcompliance processing, wherein the compliance processing may includecorrelating operational activities with identities and evaluatingpolicies that may span various different policy domains in order togovern the information technology infrastructure 110. To that end, themodel-driven architecture 100A and the service-oriented architecture100B may provide various compliance management models may be used in thecompliance management service.

In one implementation, the compliance management models may include awrapped compliance management model that manages resources 114 lackinginternal awareness over policy-based controls. The compliance managementservice may augment the resources 114 managed in the wrapped compliancemodel with one or more policy decision points and/or policy enforcementpoints that reside externally to the managed resources 114 (e.g., theevent audit service 135 b). For example, the policy decision pointsand/or the policy enforcement points may intercept any requests directedto the resources 114 managed in the wrapped compliance model, generatepolicy decisions that indicate whether the resources 114 can properlyperform the requests, and then enforce the policy decisions (e.g.,forwarding the requests to the resources 114 in response to determiningthat the resources 114 can properly perform the requests, denying therequests in response to determining that the resources 114 can properlyperform the requests, etc.). Thus, because the resources 114 managed inthe wrapped compliance model generally perform any requests that theresources 114 receive without considering policy-based controls orcompliance issues, the event audit service 135 b may further execute thecompliance management service to wrap, coordinate, and synthesize anaudit trail that includes data obtained from the managed resources 114and the wrapping policy definition service.

In one implementation, the compliance management models may include adelegated compliance management model to manage resources 114 thatimplement a policy enforcement point and reference an external policydecision point, wherein the resources 114 managed in the delegatedcompliance management model may have limited internal awareness overpolicy-based controls. As such, in one implementation, the compliancemanagement service may interleave policy decisions or other controloperations generated by the external policy decision point with theinternally implemented policy enforcement point to provide complianceassurance for the resources 114 managed in the delegated compliancemanagement model. The delegated compliance management model maytherefore represent a hybrid compliance model, which may apply to anysuitable service that simultaneously anticipates complianceinstrumentation but lacks internal policy control abstractions (e.g.,the internally implemented policy enforcement point may anticipate thecompliance instrumentation, while the externally referenced policydecision point has the relevant policy control abstractions). Thus, inthe delegated compliance management model, the compliance managementservice may have fewer objects to coordinate than in the wrappedcompliance management model, but the event audit service 135 b maynonetheless execute the compliance management service to coordinate andsynthesize an audit trail that includes data obtained from the managedresources 114 and the delegated external policy decision point.

In one implementation, the compliance management models may include anembedded compliance management model that manages resources 114 thatinternally implement policy enforcement points and policy decisionpoints, wherein the resources 114 managed in the embedded compliancemanagement model may have full internal awareness over policy-basedcontrols. As such, in one implementation, the resources 114 managed inthe embedded compliance management model may employ the internallyimplemented policy enforcement points and policy decision points toinstrument any service and control operations for requests directed tothe resources 114. In one implementation, to provide flexible complianceassurance, resources 114 managed in the embedded compliance managementmodel may expose configuration or customization options via anexternalized policy administration point. Thus, the embedded compliancemanagement model may provide an integrated and effective audit trail forcompliance assurance, which may often leave the compliance managementservice free to perform other compliance assurance processes.

Accordingly, in one implementation, the compliance management servicemay obtain information for any resource 114 managed in the informationtechnology infrastructure 110 from the configuration management database185 a or other databases 155 that include a federated namespace for themanaged resources 114, configurations for the managed resources 114, andrelationships among the managed resources 114. In addition, thecompliance management service may reference the configuration managementdatabase 185 a or other the databases 155 to arbitrate configurationmanagement in the infrastructure 110 and record previous configurationshistories for the resources 114 in the configuration management database185 a or other databases 155. As such, the compliance management servicemay generally maintain information relating to identities,configurations, and relationships for the managed resources 114, whichmay provide a comparison context for analyzing subsequent requests tochange the infrastructure 110 and identifying information technologyservices that the requested changes may impact.

Computing and Storage Environments

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may include managing computing and storage environments thatsupport services in the infrastructure 110. In particular, in oneimplementation, the computing and storage environments used to supportservices in the infrastructure 110 may employ Linux operatingenvironments, which may generally include an operating systemdistribution with a Linux kernel and various open source packages (e.g.,gcc, glibc, etc.) that collectively provide the Linux operatingenvironments. In one implementation, the Linux operating environmentsmay generally provide a partitioned distribution model for managing thecomputing and storage environments employed in the workload managementsystem. Further, in one implementation, a particular Linux distributionmay be bundled for operating environments pre-installed in the workloadmanagement system (e.g., openSUSE, SUSE Linux Enterprise, etc.), whichmay enable vendors of physical hardware resources 114 a to support everyoperating system that the vendors' customers employ without overheadthat may introduced with multiple pre-installed operating environmentchoices.

In one implementation, the partitioned distribution model may partitionthe Linux operating environments into a physical hardware distribution(often referred to as a “pDistro”), which may include physical resources114 a that run over hardware to provide a physical hosting environmentfor virtual machines 114 b. For example, in one implementation, thephysical hardware distribution may include the Linux kernel and varioushypervisor technologies that can run the virtual machines 114 b over theunderlying physical hosting environment, wherein the physical hardwaredistribution may be certified for existing and future-developed hardwareenvironments to enable the workload management system to support futureadvances in the Linux kernel and/or hypervisor technologies.Alternatively (or additionally), the workload management system mayrelease the physical hardware distribution in a full Linux distributionversion to provide users with the ability to take advantage of futureadvances in technologies at a faster release cycle.

In one implementation, the partitioned distribution model may furtherpartition the Linux operating environments into a virtual softwaredistribution (often referred to as a “vDistro”), which may includevirtual machines 114 b deployed for specific applications or servicesthat run, enable, and otherwise support workloads. More particularly,any particular virtual software distribution may generally include oneor more Linux package or pattern deployments, whereby the virtualmachines 114 b may include virtual machines images with “just enoughoperating system” (JeOS) to support the package or pattern deploymentsneeded to run the applications or services for the workloads. In oneimplementation, the virtual software distribution may include aparticular Linux product (e.g., SUSE Linux Enterprise Server) bundledwith hardware agnostic virtual drivers, which may provide configurationresources 114 c for tuning virtualized resources 114 b for optimizedperformance.

In one implementation, the particular virtual software distribution maybe certified for governmental security requirements and for certainapplication vendors, which may enable the workload management system toupdate any physical resources 114 a in the physical hardwaredistribution underlying the virtual software distribution withoutcompromising support contracts with such vendors. In particular, inresponse to future changes in technology that may improve support forLinux operating environments, resulting improvements may occur intechniques for building and deploying Linux operating environments.Thus, where many application vendors currently tend to only providesupport for certain Linux applications that run in certain Linuxversions, the workload management system may enable support for anyparticular Linux application or version, which may drive Linuxintegration and adoption across the information technologyinfrastructure 110. In one implementation, for example, the workloadmanagement system may employ Linux applications and distributionscreated using a build system that enables any suitable application to bebuilt and tested on different versions of Linux distributions (e.g., anopenSUSE Build Service, SUSE Studio, etc.). For example, in response toreceiving a request that includes unique specifications for a particularLinux application, the workload management system may notifydistribution developers to include such specifications in theapplication, with the specifications then being made available to otherapplication developers.

Thus, in one implementation, the Linux build system employed in theworkload management system may enable distribution engineers anddevelopers to detect whether changes to subsequent application releasesconflict with or otherwise break existing applications. In particular,changes in systems, compiler versions, dependent libraries, or otherresources 114 may cause errors in the subsequent application releases,wherein commonly employing the Linux build system throughout theworkload management system may provide standardized application support.For example, in one implementation, the workload management system mayemploy certified implementations of the Linux Standard Base (LSB), whichmay enable independent software vendors (ISVs) to verify compliance, andmay further provide various support services that can providepolicy-based automated remediation for the Linux operating environmentsthrough the LSB Open Cluster Framework (OCF).

In one implementation, the Linux operating environments in the workloadmanagement system may provide engines that support orchestratedvirtualization, collaboration, and architectural agility, as will bedescribed in greater detail below. Further, to manage identities,enforce policies, and assure compliance, the Linux operatingenvironments may include a “syslog” infrastructure that coordinate andmanages various internal auditing requirements, while the workloadmanagement system may further provide an audit agent to augment theinternal auditing capabilities that the “syslog” infrastructure provides(e.g., the audit agent may operate within the event audit service 135 bto uniformly manage the Linux kernel, the identity services, the policyservices, and the compliance services across the workload managementsystem). For example, in one implementation, partitioning the monolithicLinux distribution within a multiple layer model that includes physicalhardware distributions and virtual software distributions may enableeach layer of the operating system to be developed, delivered, andsupported at different schedules. In one implementation, a schedulingsystem 180 c may coordinate such development, delivery, and support in amanner that permits dynamic changes to the physical resources 114 a inthe infrastructure 110, which provide stability and predictability forthe infrastructure 110.

In one implementation, partitioning the Linux operating environmentsinto physical hardware distributions and virtual software distributionsmay further enable the workload management system to run workloads incomputing and storage environments that may not necessarily beco-located or directly connected to physical storage systems thatcontain persistent data. For example, the workload management system maysupport various interoperable and standardized protocols that providecommunication channels between users, applications, services, and ascalable replicated storage system, such as the clustered file system195 illustrated in FIG. 1A, wherein such protocols may provideauthorized access between various components at any suitable layerwithin the storage system.

In one implementation, the clustered file system 195 may generallyinclude various block storage devices, each of which may host variousdifferent file systems. In one implementation, the workload managementsystem may provide various storage replication and version managementservices for the clustered file system 195, wherein the various blockstorage devices in the clustered file system 195 may be organized in ahierarchical stack, which may enable the workload management system toseparate the clustered file system 195 from operating systems andcollaborative workloads. As such, the storage replication and versionmanagement services may enable applications and storage services to runin cloud computing environments located remotely from client resources115.

In one implementation, various access protocols may providecommunication channels that enable secure physical and logicaldistributions between subsystem layers in the clustered file system 195(e.g., a Coherent Remote File System protocol, a Dynamic StorageTechnology protocol, which may provide a file system-to-file systemprotocol that can place a particular file in one of various differentfile systems based on various policies, or other suitable protocols).Furthermore, traditional protocols for access files from a clientresource 115 (e.g., HTTP, NCP, AFP, NFS, etc.) may be written to filesystem specific interfaces defined in the definitive software library190. As such, the definitive software library 190 may provide mappingsbetween authorization and semantic models associated with the accessprotocols and similar elements of the clustered file system 195, whereinthe mappings may be dynamically modified to handle any new protocolsthat support cross-device replication, device snapshots, block-levelduplication, data transfer, and/or services for managing identities,policies, and compliance.

As such, the storage replication and version management services mayenable users to create workloads that define identity and policy-basedstorage requirements, wherein team members identities may be used todynamically modify the team members and any access rights defined forthe team members (e.g., new team members may be added to a “writeaccess” group, users that leave the team may be moved to a “read access”group or removed from the group, policies that enforce higher compliancelevels for Sarbanes-Oxley may be added in response to an executive userjoining the team, etc.). For example, a user that heads a distributedcross-department team developing a new product may define variousmembers for the team and request permission for self-defined accesslevels for the team members (e.g., to enable the team members toindividually specify a storage amount, redundancy level, and bandwidthto allocate). The workload management system may then provide finegrained access control for a dynamic local storage cache, which may movedata stored in the in the clustered file system 195 to a local storagefor a client resource 115 that accesses the data (i.e., causing the datato appear local despite being persistently managed in the clustered filesystem 195 remotely from the client resource 115). As such, individualusers may then use information technology tools define for local areanetworks to access and update the data, wherein the replication andversion management services may further enable the individual users tocapture consistent snapshots that include a state of the data acrossvarious e-mail systems, databases 155, file systems 195, cloud storageenvironments, or other storage devices.

In one implementation, the storage replication and version managementservices may further enable active data migration and auditing formigrated data. For example, policies or compliance issues may requiredata to be maintained for a longer lifecycle than hardware and storagesystems, wherein the workload management system may actively migratecertain data to long-term hardware or an immutable vault in theclustered file system 195 to address such policies or compliance issues.Furthermore, identity-based management for the data stored in theclustered file system 195 may enable the workload management system tocontrol, track, and otherwise audit ownership and access to the data,and the workload management system may further classify and tag the datastored in the clustered file system 195 to manage the data storedtherein (e.g., the data may be classified and tagged to segregateshort-term data from long-term data, maintain frequently used data onfaster storage systems, provide a content-addressed mechanism forefficiently searching potentially large amounts of data, etc.). Thus,the workload management system may use the storage replication andversion management services to generate detailed reports 145 for thedata managed in the clustered file system.

In one implementation, the storage replication and version managementservices may further provide replication services at a file level, whichmay enable the workload management system to control a location, anidentity, and a replication technique (e.g., block-level versusbyte-level) for each file in the clustered file system 195. In addition,the storage replication and version management services may furtherenable the workload management system to manage storage costs and energyconsumption (e.g., by controlling a number of copies created for anyparticular file, a storage medium used to store such copies, a storagelocation used to store such copies, etc.). Thus, integrating federatedidentities managed in the identity vault 125 with federated policydefinition services may enable the workload management system to managethe clustered file system 195 without synchronizing or otherwise copyingevery identity with separate identity stores associated with differentstorage subsystems.

Orchestrated Virtualization

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may provide orchestrated virtualization for managing servicesprovided in the information technology infrastructure 110. Inparticular, virtualization generally ensures that a machine runs atoptimal utilization by allowing services to run anywhere, regardless ofrequirements or limitations that underlying platforms or operatingsystems may have. Thus, the workload management system may definestandardized partitions that control whether certain portions of theoperating system execute over hardware provided in a hostingenvironment, or inside virtual machines 114 b that decouple applicationsand services from the hardware on which the virtual machines 114 b havebeen deployed. The workload management system may further employ astandardized image for the virtual machines 114 b, provide metadatawrappers for encapsulating the virtual machines 114 b, and providevarious tools for managing the virtual machines 114 b (e.g., “zeroresidue” management agents that can patch and update running instancesof virtual machines 114 b stored in the clustered file system 195,databases 155, or other repositories).

In one implementation, the virtualized services provided in the workloadmanagement system may simplify processes for developing and deployingapplications, which may enable optimal utilization of physical resources114 a in the infrastructure. Furthermore, virtualization may be used tocertify the Linux operating environments employed in the infrastructure110 for any suitable platform that include various physical resources114 a. In particular, as described in further detail above, the workloadmanagement system may partition the Linux operating environments into amultiple-layer distribution that includes a physical distribution and avirtual distribution, wherein the physical distribution may represent alower-level interface to physical resources 114 a that host virtualmachines 114 b, while the virtual distribution may represent anyapplications or services hosted on the virtual machines 114 b.

For example, in one implementation, the physical distribution mayinclude a minimally functional kernel that bundles various base driversand/or independent hardware vendor drivers matched to the physicalresources 114 a that host the virtual machines 114 b. In oneimplementation, the physical distribution may further include apluggable hypervisor that enables multiple operating systems to runconcurrently over the hosting physical resources 114 a, a minimal numberof software packages that provide core functionality for the physicaldistribution, and one or more of the zero residue management agents thatcan manage any virtualized resources 114 b that may be hosted on thephysical resources 114 a. As such, in response to any particular requestto install a physical distribution, package selections available to theworkload management system may include packages for the kernel, thehypervisor, the appropriate drivers, and the management agents that maybe needed to support brands or classes of the underlying physicalresources 114 a.

Furthermore, in one implementation, the virtual distribution may includea tuned appliance, which may generally encapsulate an operating systemand other data that supports a particular application. In addition, thevirtual distribution may further include a workload profileencapsulating various profiles for certifying the appliance withattestation tokens (e.g., profiles for resources 114, applications,service level agreements, inventories, cost, compliance, etc.). Thus,the virtual distribution may be neutral with respect to the physicalresources 114 a included in the physical distribution, wherein thevirtual distribution may be managed independently from any physicaldrivers and applications hosted by a kernel for the virtual distribution(e.g., upgrades for the kernels and physical device drivers used in thephysical distributions may be managed independently from securitypatches or other management for the kernels and applications used in thevirtual distributions). Thus, partitioning the physical distributionsfrom the virtual distributions may remove requirements for particularphysical resources 114 a and preserve records for data that may requirea specific application running on a specific operating system.

In one implementation, from a business perspective, the workloadmanagement system may secure the virtualized resources 114 b in asimilar manner as applications deployed on the physical resources 114 a.For example, the workload management system may employ any accesscontrols, packet filtering, or other techniques used to secure thephysical resources 114 a to enforce containment and otherwise secure thevirtualized resources 114 b, wherein the virtualized resources 114 b maypreserve benefits provided by running a single application on a singlephysical server 114 a while further enabling consolidation and fluidallocation of the physical resources 114 a. Furthermore, the workloadmanagement system may include various information technology tools thatcan be used to determine whether new physical resources 114 a may beneeded to support new services, deploy new virtual machines 114 b, andestablish new virtual teams that include various collaborating entities.

In one implementation, the information technology tools may include atrending tool that indicate maximum and minimum utilizations for thephysical resources 114 a, which may indicate when new physical resources114 a may be needed. For example, changes to virtual teams, differenttypes of content, changes in visibility, or other trends for thevirtualized resources 114 b may cause changes in the infrastructure 110,such as compliance, storage, and fault tolerance obligations, whereinthe workload management system may detect such changes and automaticallyreact to intelligently manage that the resources 114 in theinfrastructure 110. In one implementation, the information technologytools may further include a compliance tool providing a complianceenvelope for applications running or services provided within anysuitable virtual machine 114 b. More particularly, the complianceenvelope may save a current state of the virtual machine 114 b at anysuitable time and then push an updated version of the current state tothe infrastructure 110, whereby the workload management system maydetermine whether the current state of the virtual machine 114 bcomplies with any policies that may have been defined for the virtualmachine 114 b. For example, the workload management system may supportdeploying virtual machines 114 b in demilitarized zones, cloud computingenvironments, or other data centers that may be remote from theinfrastructure 110, wherein the compliance envelope may provide asecurity wrapping to safely move such virtual machines 114 b and ensurethat only entities with approved identities can access the virtualmachines 114 b.

Thus, from an architectural perspective, the virtualized resources 114 bmay enable the workload management system to manage development anddeployment for services and applications provisioned in theinfrastructure 110. For example, rather than dynamically provisioningphysical resources 114 a to deal with transient peaks in load andavailability on a per-service basis, which may result in under-utilizedphysical resources 114 a, the workload management system may hostmultiple virtual machines 114 b on one physical machine 114 a tooptimize utilization levels for the physical resources 114 a, which maydynamically provisioned physical resources 114 a that enable mobilityfor services hosted in the virtual machines 114 b. Thus, in oneimplementation, mobile services may enable the workload managementsystem to implement live migration for services that planned maintenanceevents may impact without adversely affecting an availability of suchservices, while the workload management system may implement clusteringor other availability strategies to address unplanned events, such ashardware or software failures.

In one implementation, the workload management system may furtherprovide various containers to manage the virtual machines 114 b, whereinthe containers may include a security container, an applicationcontainer, a service level agreement container, or other suitablecontainers. The security container may generally providehardware-enforced isolation and protection boundaries for variousvirtual machines 114 b hosted on a physical resource 114 a and thehypervisor hosting the virtual machines 114 b. In one implementation,the hardware-enforced isolation and protection boundaries may be coupledwith a closed management domain to provide a secure model for deployingthe virtual machines 114 b (e.g., one or more security labels can beassigned to any particular virtual machine 114 b to contain viruses orother vulnerabilities within the particular virtual machine 114 b).Furthermore, in the context of tuned appliances, wherein one virtualmachine 114 b hosts one service that supports one particularapplication, the application container may package the service within aparticular virtual machine image 114 b. As such, the virtual machineimage 114 b may include a kernel and a runtime environment optimallyconfigured and tuned for the hosted service. Similarly, the servicelevel agreement container may dynamically monitor, meter, and allocateresources 114 to provide quality of service guarantees on a per-virtualmachine 114 b basis in a manner transparent to the virtual machinekernel 114 b.

In one implementation, the various containers used to manage the virtualmachines 114 b may further provide predictable and custom runtimeenvironments for virtual machines 114 b. In particular, the workloadmanagement system may embed prioritization schemes within portions of anoperating system stack associated with a virtual machine 114 b that mayadversely impact throughput in the operating system. For example,unbounded priority inversion may arise in response to a low-prioritytask holding a kernel lock and thereby blocking a high-priority task,resulting in an unbounded latency for the high-priority task. As such,in one implementation, the prioritization schemes may embed a deadlineprocessor scheduler in the hypervisor of the virtual machine 114 b andbuild admission control mechanisms into the operating system stack,which may enable the workload management system to distribute loadsacross different virtual machine 114 b and support predictablecomputing. In addition, the workload management system may decomposekernels and operating systems for virtual machines 114 b to providecustom runtime environments. For example, in the context of a typicalvirtual machine 114 b, an “unprivileged guest” virtual machine 114 b mayhand off processing to a “helper” virtual machine 114 b at a devicedriver level. Thus, to support server-class applications that may dependon having a portable runtime environment, the workload management systemmay use the decomposed kernels and operating systems to dynamicallyimplement an operating system for a particular virtual machine 114 b atruntime (e.g., the dynamically implemented operating system mayrepresent a portable runtime that can provide a kernel for a virtualmachine 114 b that hosts a service running a server-class application,which may be customized as a runtime environment specific to thatservice and application).

In one implementation, the workload management system may further employdifferent virtualization technologies in different operatingenvironments. For example, in one implementation, the workloadmanagement system may implement Type 1 hypervisors for virtualizedserver resources 114 b and Type 2 hypervisors for virtualizedworkstation, desktop, or other client resources 115. In particular, Type1 hypervisors generally control and virtualize underlying physicalresources 114 a to enable hosting guest operating systems over thephysical resources 114 a (e.g., providing coarse-level scheduling topartition the physical resources 114 a in a manner that can meet qualityof service requirements for each of the guest operating systems hostedon the physical resources 114 a). Thus, the workload management systemmay implement Type 1 hypervisors for virtualized server resources 114 bto leverage performance and fault isolation features that suchhypervisors provide. In contrast, Type 2 hypervisors generally includeuse a host operating system as the hypervisor, which use Linuxschedulers to allocate resources 114 to guest operating systems hostedon the hypervisor. In Type 2 hypervisor architectures, such as theVMware GSX Server, Microsoft Virtual PC, and Linux KVM, hosted virtualmachines 114 b appear as a process similar to any other hosted process.Thus, because workstations, desktops, and other client resources 115 mayinclude hardware that may or may not support virtualization, theworkload management system may provide centralized desktop managementand provisioning using Type 2 hypervisors. For example, the workloadmanagement system may manage and maintain desktop environments asvirtual appliances 114 b hosted in the infrastructure 110 and thenremotely deliver the desktop environments to remote client resources 115(e.g., in response to authenticating an end user at a particular clientresource 115, the virtual appliance 114 b carrying the appropriatedesktop environment may be delivered for hosting to the client resource115, and the client resource 115 may transfer persistent states for thedesktop environment to the infrastructure 110 to ensure that the clientresource 115 remains stateless).

In one implementation, orchestrated virtualization may generally referto implementing automated policy-based controls for virtualizedservices. For example, an orchestrated data center may ensure compliancewith quality of service agreements for particular groups of users,applications, or activities that occur in the information technologyinfrastructure 110. The workload management system may therefore providea policy-based orchestration service to manage virtualized resources 114b, wherein the orchestration service may gather correct workload metricswithout compromising performance in cloud computing environments orother emerging service delivery models. For example, workloads thatusers define may be executed using coordinated sets of virtual machines114 b embedding different application-specific operating systems,wherein the workload management system may provision and de-provisionthe virtual machines 114 b to meet requirements defined in the workload(e.g., using standard image formats and metadata wrappers to encapsulatethe workloads, embed standard hypervisors in the virtual machines 114 b,physical-to-virtual (P2V) or virtual-to-virtual (V2V) conversion toolsto translate between different image formats, etc.). Furthermore, incloud computing environments that can include unpredictable sets ofdynamic resources external to the infrastructure 110, the workloadmanagement system coordinate such resources using a closed-loopmanagement infrastructure 170 that manages declarative policies,fine-grained access controls, and orchestrated management and monitoringtools.

In one implementation, the workload management system may further managethe orchestrated data center to manage any suitable resources 114involved in the virtualized workloads, which may span multiple operatingsystems, applications, and services deployed on various physicalresources 114 a and/or virtualized resources 114 b (e.g., a physicalserver 114 a and/or a virtualized server 114 b). Thus, the workloadmanagement system may balance resources 114 in the informationtechnology infrastructure 110, which may align management of resources114 in the orchestrated data center with business needs or otherconstraints defined in the virtualized workloads (e.g., deploying ortuning the resources 114 to reduce costs, eliminate risks, etc.). Forexample, as described in further detail above, the configurationmanagement database 185 a may generally describe every resource 114 inthe infrastructure 110, relationships among the resources 114, andchanges, incidents, problems, known errors, and/or known solutions formanaging the resources 114 in the infrastructure 110.

As such, the policy-based orchestration service may provide federatedinformation indexing every asset or other resource 114 in theinfrastructure 110, wherein the workload management system may referencethe federated information to automatically implement policy-controlledbest practices (e.g., as defined in the Information TechnologyInfrastructure Library) to manage changes to the infrastructure 110 andthe orchestrated data center. For example, the configuration managementdatabase 185 a may model dependencies, capacities, bandwidthconstraints, interconnections, and other information for the resources114 in the infrastructure 110, which may enable the workload managementsystem to perform impact analysis, “what if” analysis, and othermanagement functions in a policy-controlled manner. Furthermore, asnoted above, the configuration management database 185 a may include afederated model of the infrastructure 110, wherein the informationstored therein may originate from various different sources. Thus,through the federated model, the configuration management database 185 amay appear as one “virtual” database incorporating information fromvarious sources without introducing overhead otherwise associated withcreating one centralized database that potentially includes largeamounts of duplicative data.

In one implementation, the orchestration service may automate workloadsacross various physical resources 114 a and/or virtualized resources 114b using policies that match the workloads to suitable resources 114. Forexample, deploying an orchestrated virtual machine 114 b for a requestedworkload may include identifying a suitable host virtual machine 114 bthat satisfies any constraints defined for the workload (e.g., matchingtasks to perform in the workload to resources 114 that can perform suchtasks). In response to identifying allocating and deploying the suitablehost virtual machine 114 b, deploying the orchestrated virtual machine114 b for the workload may include the workload management systempositioning an operating system image on the host virtual machine 114 b,defining and running the orchestrated virtual machine 114 b on thechosen host virtual machine 114 b, and then monitoring, restarting, ormoving the virtual machine 114 b as needed to continually satisfy theworkload constraints.

In one implementation, the orchestration service may include variousorchestration sub-services that collectively enable management overorchestrated workloads. For example, the orchestration service may bedriven by a blueprint sub-service that defines related resources 114provisioned for an orchestrated workload, which the workload managementsystem may manage as a whole service including various different typesof resources 114. Furthermore, a change management sub-service mayenable audited negotiation for service change requests, including themanner and timing for committing the change requests (e.g., within anapproval workload 130). The sub-services may further include anavailability management sub-service that can control and restartservices in a policy-controlled manner, a performance managementsub-service that enforces runtime service level agreements and policies,a patch management sub-service that automatically patches and updatesresources 114 in response to static or dynamic constraints, and acapacity management sub-service that can increase or reduce capacitiesfor resources 114 in response to current workloads.

To provide exemplary contexts for some of the orchestration sub-servicesnoted above, the availability management sub-service may automaticallymigrate a virtual machine 114 b to another physical host 114 a inresponse to a service restart failing on a current physical host 114 amore than a policy-defined threshold number of times. With respect tothe performance management sub-service, in response to determining thata service running at eighty percent utilization can be cloned, theservice may be cloned to create a new instance of the service and thenew instance of the service may be started automatically. Furthermore,to manage a patch for running instances of a service, the patchmanagement sub-service may test the patch against a test instance of theservice and subsequently apply the patch to the running service instancein response to the test passing. Regarding the capacity managementsub-service, an exemplary service instance may include a service levelagreement requiring a certain amount of available storage for theservice instance, wherein the capacity management sub-service mayallocate additional storage capacity to the service instance in responseto determining that the storage capacity currently available to theservice instance has fallen below a policy-defined threshold (e.g.,twenty percent).

In one implementation, the orchestration service may incorporateworkflow concepts to manage approval workloads 130 or other managementworkloads, wherein a workload database 185 b may store information thatthe workload management system can use to manage the workloads. Forexample, in one implementation, an approval workload 130 may include arequest to provision a particular service to a particular user inaccordance with particular constraints, wherein the approval workload130 may include a sequence of activities that includes a suitablemanagement entity reviewing the constraints defined for the service,determining whether any applicable policies permit or prohibitprovisioning the service for the user, and deploying the service inresponse to determining that the service can be provisioned, among otherthings. Thus, the workload engine 180 a may execute the orchestrationservice to map the sequence of activities defined for any particularworkload to passive management operations and active dynamicorchestration operations. For example, the workload database 185 b maystores various declarative service blueprints that provide master plansand patterns for automatically generating service instances, physicaldistribution images and virtual distribution images that can be sharedacross the workload management system to automatically generate theservice instances, and declarative response files that define packagesand configuration settings to automatically apply to the serviceinstances.

Collaboration

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may enable collaboration between entities that interact with theservices provided in the information technology infrastructure 110. Inparticular, collaboration may generally involve dynamic teams that crosstraditional security and policy boundaries. For example, where looselyaffiliated organizations share data and applications, the workloadmanagement system may enable continued collaboration even when some ofthe participants sharing the data and applications may be temporarilyoffline (e.g., the workload management system may authorize certainusers to allocate portions of local client resources 115 to supportcross-organizational endeavors). Thus, the workload management systemmay provide a standard interface 160 designed to enable dynamiccollaboration for end users that simplify interaction with complexsystems, which may provide organizations with opportunities for moreproductive and agile workloads.

In one implementation, the workload management system may provide acollaboration service that enables workloads to span multiple users;applications, services, systems, or other resources 114. For example,multiple users may collaborate and share data and other resources 114throughout the workload management system, both individually and withinvirtual teams (e.g., via a service bus that transports data relating toservices or other resources 114 over the event bus 140). As such, theworkload management system may support virtual team creation that canspan organizational and geographic boundaries, wherein affiliations,content, status, and effectiveness may be represented for identitiesthat have membership in any particular virtual team (e.g., to enableonline and offline interaction between team members). In oneimplementation, the workload management system may provide enrichedcollaboration content (e.g., images, video, text, data feeds), and mayefficiently transport the collaboration content between team members(e.g., via the service bus). Furthermore, the workload management systemmay integrate desktops, laptops, personal digital assistants, smartphones, or other suitable client resources 115 into virtual teamcollaboration experiences in order to meet emerging demands for mobile,interoperable, and integrated access. Thus, the collaboration enabled inthe workload management system may operate in an adaptive collaborativeenvironment, which may unify technologies for online integrated mediasharing with offline authoring and editing.

In one implementation, the collaboration service may generally include aweb-based platform that support inter-organization andintra-organization management for virtual teams, interoperabilitybetween various different collaboration products, social networking todeliver information that enables the virtual teams to interactefficiently either online or offline, and federated searches against anysuitable information source, among other things. For example, in oneimplementation, the collaboration service may include variouscollaboration sub-services that collectively enable the adaptivecollaborative environment, including a client sub-service, anaggregation sub-service, an information sub-service, a real-timecollaboration sub-service, and a metadata sub-service.

In one implementation, the client sub-service may provide communicationinterfaces with real-time online systems, offline systems, and userinterfaces. In particular, functionality for the client sub-service maybe provided in a web-based interface that supports interaction with thereal-time online systems in addition to software that can executelocally at client resources 115 to provide offline access to shared dataand real-time meetings that may involve shared applications and shareddesktops. For example, in one implementation, the client sub-service maycommunicate with the aggregation sub-service to coordinate thecommunication and collaboration across various information sources,wherein the aggregation sub-service may route messages to theappropriate information sources in appropriate formats. Furthermore, toensure that collaborative contexts reference information that may bedistributed across the infrastructure 110 rather than hosted within oneparticular application, the information sub-service may integrate thedifferent information sources within the collaborative environment. Assuch, the virtual teams may connect and collaborate using informationthat originates anywhere across the infrastructure 110, and theinformation sub-service may enable members of the virtual teams todiscuss information or other content from the various sources in aninteractive manner. The real-time collaboration sub-service may interactwith the information sub-service to provide real-time meetings thatinclude audio content, video content, instant message content, and otherforms of communication content in real-time collaborative contextswithin the infrastructure 110 and with third-parties.

In one implementation, the metadata sub-service may provide a “helper”service to the aggregation and information sub-services, collectingancillary metadata generated during interaction between virtual teammembers and create collaborative threads to maintain contexts thatgenerated the data. Furthermore, the metadata sub-service may evaluatethe ancillary metadata to discover new and relevant links betweeninformation sources and integrate data that can potentially originatefrom various disparate information sources. For example, the metadatasub-service may provide a uniform format for classifying data collectedduring collaborative contexts, which may provide a single source forvirtual team members to search and display the data across any suitablecollaboration source. Similarly, the metadata sub-service may index andunify data collected from disparate network sources, including varioussearch engines and content aggregation services, to help the virtualteam members to locate information that may be interesting or otherwiserelevant to the collaborative contexts. As such, the varioussub-services integrated within the collaboration service may provide acollaborative environment that supports dynamic interaction acrossorganizational boundaries and different information sources in a mannerthat can account for any particular virtual team member's personalpreferences.

Architectural Agility

In one implementation, as noted above, the technologies integrated bythe model-driven architecture 100A and the service-oriented architecture100B may collectively provide various services that the workloadmanagement system can use to manage workloads and enable intelligentchoices in an information technology infrastructure 110. Furthermore,various horizontal integration components may be distributed in theworkload management system to integrate the various technologiesemployed in the model-driven architecture 100A and the service-orientedarchitecture 100B and provide an agile and interoperable informationtechnology infrastructure 110.

In particular, the horizontal integration components distributed acrossthe workload management system may provide agility and interoperabilityto the information technology infrastructure 110 through support forvarious emerging service delivery models, including Web 2.0, Software asa Service (SaaS), mashups, hardware, software, and virtual appliances,cloud computing, grid computing, and thin clients, among others. Forexample, in one implementation, every service, application, or otherresource 114 in the workload management system may be provided with anapplication programming interface 160 that can provide connectivitybetween different operating systems, programming languages, graphicaluser interface toolkits, or other suitable services, applications, orresources 114.

In one implementation, the application programming interface 160 mayinclude a Representational State Transfer (REST) application programinterface 160, which may use standard methods defined in the HypertextTransfer Protocol (HTTP), wherein using standardized types to formatdata may ensure interoperability. In one implementation, the RESTinterface 160 may define a Uniform Resource Identifier (URI) thatrepresents a unique identity for any suitable entity, and may furtherdefine relationships between the represented identities with hyperlinksthat can be selected to access information for related identities,attribute claims, roles, policies, workloads, collaboration spaces, andworkflow processes. Thus, through the use of URIs, hyperlinks, and otherstandard HTTP methods, the REST interface 160 may provide an interfaceto a data ecosystem that can be navigated in a web-based environmentthat can be used anywhere in the workload management system. In oneimplementation, the REST interface 160 may declare a namespace havingversion controls and standard methods to read and write to the dataecosystem, and may include a URI registry containing the URIs thatrepresent the identities in the data ecosystem. Thus, any suitableresource 114 may programmatically discover other identities thatcommunicate using the REST interface 160 (e.g., the REST interface 160may be implemented in a communication gateway 112 a to physicalresources 114 a, a communication gateway 112 b to virtualized resources114 a, a communication gateway 112 c to configuration resources 114 c,etc.).

Furthermore, in one implementation, the workload management system mayextend an application program interface stack for the supplied RESTinterface 160, which may enable new services, applications, and otherresources 114 to be integrated into the workload management system in amanner that automatically inherits the identity-based andpolicy-controlled services implemented in the workload managementsystem. In particular, the supplied application program interface stackmay generally include a unified adapter and a proxy to existing andfuture technologies using protocols to enable services that communicatethrough the REST interface 160 regardless of whether the services residein the infrastructure 110, a cloud computing environment, a third partydata center, or elsewhere (e.g., web service protocols, lightweightdirectory protocols, messaging queue protocols, remote procedure callprotocols, etc.). To provide support to developers and users that extendthe application program interface stack supplied for the REST interface160, a Recipe-based Development Kit (RDK) may provide full source codeexamples for various operating systems, programming languages, andgraphical user interface toolkits.

Additionally, in one implementation, the workload engine 180 a maymanage creation of application program interface keys for the RESTinterface 160 stack, whereby auditing and policy-based approvals may besupported for provisioning the application program interface keys. Forexample, the workload management system may deploy widgets to clientdesktops 115, wherein the widget may track identities and contexts thatinclude attempts to access the REST interface 160 stack. Thus, inresponse to provisioning or auditing application program interface keys,platform authentication and policy checks may be triggered against theaccessing identity and the context that the keys supply. In a similarmanner, the application program interface keys may enable the workloadmanagement system to meter costs for the information technologyinfrastructure 110.

Thus, the standardized stack supplied for the REST application programinterface 160 may provide support for industry standard authenticationand authorization methods, which may enable identity-managed andpolicy-controlled auditing for events and access controls. Furthermore,the extensibility of the REST application program interface 160 mayenable integration with any suitable existing or future-developedsystem. For example, in one implementation, the REST interface 160 maybe configured with standards such as the Atom Syndication Format andAtom Publishing Protocol to integrate feed synchronization, JavaScriptObject Notation and Extensible. Markup Language (XML) to integrateenterprise portals, mashups, and social networking platforms. Thus, inthe context of feed synchronization to provide automaticallynotifications in response to any changes to a particular resource 114, auser may simply enter a URI for the resource 114 in an existing webbrowser feed aggregator (e.g., Firefox bookmarks). Thus, by providingextensible support for any suitable system, application, service, orother resources 114, the features of the REST application programinterface 160 may provide agility and interoperability to theinfrastructure 110.

Having described the model-driven and service-oriented architecture100A-B that collectively provide the agile, responsive, reliable, andinteroperable environment that enables the features of the workloadmanagement system, the description to be provided below will addresscertain particular features of the workload management system. Inaddition, further detail relating to the architectural foundation andother features of the workload management system may be provided in“Novell Architectural Foundation: A Technical Vision for Computing andCollaborating with Agility,” “Automation for the New Data Center,” and“A Blueprint for Better Management from the Desktop to the Data Center,”the contents of which are hereby incorporated by reference in theirentirety.

According to one aspect of the invention, FIG. 2 illustrates anexemplary method 200 for intelligent workload management. In particular,the intelligent workload management method 200 may be used to manageapproval workloads created in response to service requests. Inparticular, an operation 210 may include creating an approval workloadin response to a receiving a request for a service from any suitableuser, application, system, or other entity having an identity in theworkload management system. For example, in one implementation, therequest may generally specify any components needed to configure theservice for a particular task (e.g., a raw machine hosting an operatingsystem and storage may be requested to deploy a particular applicationin the raw machine, an existing service may be requested to specify anysuitable combination of components that can deploy the application,etc.). In addition, the request may further specify desired aperformance level (or service level) for the service (e.g.,availability, release capacity, financial constraints, continuity,etc.), any comments for provisioning the service in a certain manner(e.g., provision the service as soon as possible, according to aparticular schedule or policy, to particular members in a virtual team,with a particular configuration, etc.).

Thus, in one implementation, the request may generally include anysuitable criteria that the requesting entity specifies to defineconstraints for deploying the requested service, wherein the workloadmanagement system may create the approval workload in operation 210 todetermine whether or not the requested service can be provisioned in amanner that meets the constraints defined in the request. For example,in one implementation, the approval workload may generally define a taskthat includes various human and/or automated approvers (or servicedelivery managers) collaboratively managing the service request todetermine whether the service can be provisioned as requested. Thus, tomanage the approval workload, an operation 220 may include the workloadmanagement system querying a configuration management database to obtainan infrastructure model describing any computing resources and storageresources available to run the requested service.

In one implementation, the model of the computing resources obtained inoperation 220 may include various rack-mounted servers and/or bladeservers, which may include multi-core processors (e.g., sixty-four bitprocessors), a multiple gigabyte local memory, a serial-attachedRedundant Array of Independent Disks (RAID), Ethernet and Storage AreaNetwork (SAN) interfaces, and embedded hardware that can supportvirtualization. In addition, the computing resources may further run anappropriate operating system for the underlying physical architecture,including a virtual machine monitor (e.g., a hypervisor), various devicedrivers, a management kernel, and any suitable management agents. In oneimplementation, the management kernel and the management agents maycollectively provide support for remotely deploying virtual machines tobe executed by the hypervisors present on the computing resources, whichmay enable the workload management system to group and organize thecomputing resources. For example, a globally unique identifier (e.g., aURI) may be created for each of the computing resources, whereby thecomputing resources may be grouped or otherwise organized according toany suitable combination of a type (e.g., thin blade, symmetricmultiprocessing, etc.), intended purpose (e.g., test, production, etc.),owner, physical location, or other classifying types. Furthermore, theworkload management system may configure one or more of the computingresources to function in isolation or cooperatively with other computingresources to create high-availability clusters.

In one implementation, the model of the storage resources obtained inoperation 220 may include various SAN disk-block storage arrays and/orfile servers, whereby the storage resources may be collectively pooledand protected with identity-based policy controls. In oneimplementation, the computing resources described above may access thestorage resources on behalf of virtual machines deployed in theinfrastructure, wherein the storage resources may be individuallymanaged during lifecycles of the virtual machines in a dynamic manner.Furthermore, the workload management system may group and organize thestorage resources in a similar manner as the computing resources,wherein the workload management system may manage the storage resourcesaccording to any suitable combination of a type (e.g., available RAID-5disks), intended purpose (e.g., temporary, protected, remotelyreplicated, etc.), owner, physical location, or other classifying types.

In one implementation, the model of the computing resources and thestorage resources obtained in operation 220 may further include variousrelationships between the resources, wherein the relationships mayinclude dependencies, capacities, and bandwidth requirements. Forexample, any particular virtual, machine deployed in the infrastructuremay generally run on physical computing resources, wherein the model mayinclude federated information that links a network address, identities,and other information for the virtual machine with any computingresources and storage resources that have been allocated to the virtualmachine, which may enable lifecycle management for the virtual machine.Thus, the configuration management database may generally providefederated knowledge detailing any suitable entity managed in theworkload management system and relationships between such managedentities.

In one implementation, in response to querying the configurationmanagement database in operation 220 to obtain the current model of theinfrastructure, an operation 225 may determine whether the workloadmanagement system can provision the service requested in the approvalworkload in a manner that meets any constraints that the request definedfor the service. In particular, the workload management system maydetermine whether the infrastructure model indicates that theinfrastructure has available computing resources and storage resourcessuitable to provision the requested service. Furthermore, the workloadmanagement system may employ the identity management and policyenforcement services to determine whether the service can be provisionedto the requesting entity without violating any relevant policies. Forexample, to authenticate and configure a desktop machine for a chieffinancial officer, a biometric authorization component (e.g., afingerprint reader) may be installed in the desktop machine. Thus, theidentity management and policy enforcement services may collectivelyprohibit the workload management system from deploying services to thedesktop machine that would add a keystroke logger, remove the biometricauthorization component, or violate another policy with respect to thechief financial officer identity. In another example, requests for BitTorrent storage may be denied regardless of an identity for therequesting identity because a policy prohibits peer-to-peer filesharing.

Thus, in response to the workload management system determining inoperation 225 that the requested service cannot be provisioned inaccordance with the constraints defined in the request (e.g., becausethe infrastructure lacks sufficient computing resources and/or storageresources to support the service, the requested service violates arelevant policy with respect to an identity for the requesting entity,etc.), the workload management system may deny the request and send anappropriate denial notification to the requesting entity in an operation230. For example, the denial notification may provide a reason fordenying the service request, which may provide information that can bereferenced to analyze subsequent requests having similar criteria,modify the request based on available resources or relevant policies,audit approval processes in a compliance review, or otherwisereferenced.

On the other hand, in response to determining in operation 225 that therequested service can be provisioned in accordance with the requestedconstraints (e.g., because the infrastructure has sufficient computingresources and storage resources to support the service, the requestedservice does not violate any policies with respect to the identity forthe requesting entity, etc.), the workload management system may approvethe request and then initiate provisioning for the service in anoperation 235. In particular, in response to approving the request, theworkload management system may reserve appropriate physical computingresources, virtual computing resources, and/or storage resources to runthe service, wherein operation 235 may include determining whether suchresources can be automatically and/or immediately allocated. Forexample, certain workloads may be prioritized to ensure that businessobjectives can be met, wherein the workload management system may deferthe approval workload in operation 235 in response to determining thatallocating the resources to the approval workload may occupy resourcesneeded for higher priority workloads (e.g., because the reservedresources are currently subject to a “blackout” period for patching orupdating the resources).

As such, in response to determining that the resources reserved to theservice cannot be provisioned automatically and/or immediately, theworkload management system may manage creation of a provisioning planfor the service in an operation 240. In particular, operation 240 mayinclude various automated and/or human entities interacting to createthe provisioning plan, wherein the provisioning plan may includepre-empting the approval workload until workloads in a high priorityqueue have completed, moving the approval workload to the high priorityqueue, dynamically allocating additional resources to the approvalworkload (e.g., pre-empting lower priority workloads), or otherwisebalancing utilization of the resources in the infrastructure betweenbusiness processes and system processes that may have, differentpriorities. Furthermore, in one, implementation, the workload managementsystem may coordinate the interaction between the entities that createthe provisioning plan in operation 240 (e.g., because the service cannotbe provisioned until a certain process has completed, a certain entityprovides feedback, etc.). As such, operation 240 may generally includevarious processes and interactions between entities, which the workloadmanagement system may manage to create the plan for suitablyprovisioning the approved service.

In one implementation, in response to determining that the resourcesreserved to the service can be provisioned automatically andimmediately, or alternatively in response to successfully creating theprovisioning plan for the service in operation 240, the workloadmanagement system may provision the requested service in an operation250. In particular, operation 250 may include allocating an operatingsystem image, a resource inventory, and software to an orchestratedvirtual machine that can run the service and embedding lifecycle controlinformation within the orchestrated virtual machine to enable managementfor the virtual machine and the computing resources allocated to theservice. In one implementation, one or more of the computing resourcesin the infrastructure may be configured as an image creation server,wherein the image creation servers may be dedicated to creating andinstalling virtual machines in various ways. For example, in a largeinformation technology infrastructure that frequently creates virtualmachine instances, multiple image creation servers may be employed tocreate and install the virtual machines, or one or more of the imagecreation servers may be configured to create “in-place” virtualmachines, wherein such virtual machines may be incubated on particularcomputing resources that further execute the virtual machines.

Thus, in one implementation, operation 250 may include invoking an imagecreation service, which may create a virtual machine image to run therequested service. For example, the image creation service may contactan image repository that contains various ready-to-run virtual machineimages, and then appropriately download one or more of the virtualmachine images that can run the requested service. The image creationservice may then clone and configure the virtual machine imagedownloaded from the image repository based on any constraints that therequest defines for the service. As such, operation 250 may generallyinclude creating a new virtual machine having an operating system image,external storage references, and control information particularlyconfigured for the requested service (e.g., based on identities,policies, service level agreements, lifecycle management, etc.), and mayfurther include deploying the newly created virtual machine to computingresources that have been reserved to run the requested service.Alternatively (or additionally), the image creation service may providea push model for deploying the virtual machine image, wherein the imagecreation service may instruct the image repository to multi-cast theimage to multiple computing resources. Thus, the push modelimplementation may pre-stage the multi-casted virtual machine image fordeployment over various potential deployment targets.

In one implementation, in response to successfully provisioning theservice in operation 250, the workload management system may update theinfrastructure model in an operation 260. For example, any resources,identities, policies, or other information associated with theprovisioned service may be indexed within a global namespace in thefederated configuration management database. As such, the workloadmanagement system may reference the updated infrastructure model totrack registered virtual machines that have been provisioned anddeployed in the infrastructure, hierarchical relationships between theregistered virtual machines and the resources, identities, policies, orother information associated with the virtual machines, and otherwiseprovide lifecycle management for the virtual machines, as will bedescribed in greater detail below. Furthermore, an operation 270 mayinclude the workload management system sending a service provisioningnotification to the requesting entity, wherein the notification sent inoperation 270 may indicate that the service has been successfullyprovisioned, provide information that can be referenced to analyzesubsequent requests having similar criteria, audit approval processes ina compliance review, or otherwise provide information relevant to theprovisioned service.

In one implementation, the workload management system may manage theprovisioned service in an operation 280 in response to successfullyprovisioning the service in operation 250. In particular, as notedabove, updating the infrastructure model in operation 260 may provideinformation that the workload management system can reference to providelifecycle management for services provisioned and deployed in theinfrastructure. For example, various lifecycle rules and controlinformation may be used to respond to variable computing demands,changes, and unexpected events in the infrastructure, wherein servicesthat run within virtual machines may introspectively monitor and reporton health of the hosted services. Thus, the provisioned service may bemanaged in operation 280 with the lifecycle control information embeddedin the host virtual machines (e.g., monitoring real-time executionstates and other health conditions, automatically managing identitiesand policies in response to monitored health conditions, retiringresources reserved or allocated the virtual machine that may no longerbe needed, etc.).

In addition, the workload management system may cooperate with thelifecycle controls embedded in the host virtual machines to manage theprovisioned service. In particular, the workload management system mayaggregate information relating to the monitored states reported fromindividual virtual machine instances and record such information withina context describing a current state of the infrastructure model. Thus,physical constraints, dependencies, current performance trends, andother real-time execution states may be monitored to schedule virtualmachines that run provisioned services to computing resources forexecution in a manner that satisfies any identity constraints, policycontrols, service level agreements, or other constraints that have beendefined for the services. For example, operation 280 may includeapplying policy-defined thresholds to any status events generated by themonitored computing resources, storage resources, virtual machines, orother resources (e.g., responding to a monitored variable that exceedsor falls below a policy-defined threshold for more than a policy-definedtime period). In another example, operation 280 may further includemanaging version controls for virtual machine images, which may providesupport for inserting management agents that can tune or patch thevirtual machine images as needed, and rolling the virtual machine imagesback to a “pristine” state, among other things.

Thus, the techniques described above the intelligent workload managementmethod 200 may generally provide lifecycle management from creating avirtual machine image that can host a requested service through eventualretirement of the virtual machine image. Moreover, in addition tointrospective health monitoring and maintenance for individual virtualmachine images, the lifecycle management techniques may providefederated information for managing an entire information technologyinfrastructure, which may be used to assure compliance with legal andcontractual obligations for any suitable hardware or software that anorganization may use, create detailed plans for implementing or rollingback proposed changes to the infrastructure, detect, resolve, andotherwise remediate, incidents in the infrastructure, reactively andproactively manage problems in the infrastructure with knownworkarounds, fixes, and permanent infrastructure changes, and ensurethat every service in the infrastructure meets or exceeds service levelrequirements, among other things.

According to one aspect of the invention, FIG. 3 illustrates anexemplary block diagram of a system 300 for generating single sign-onworkload identities, while FIG. 4 illustrates an exemplary flow diagramof a method 400 that may operate in the system 300 for generating singlesign-on workload identities. Thus, the description to be provided hereinfor FIG. 3 or FIG. 4 will be understood as corresponding to techniquesthat can be performed in the system 300 shown in FIG. 3 or the method400 shown in FIG. 4, whether or not explicitly described.

In one implementation, generating single sign-on workload identities maygenerally include creating an authentication token that defines variouscredentials or permissions assigned to any suitable user, application,system, service, resource, or other entity having an identity managed inthe workload management system. More particularly, an operating systemthat executes services or other applications on a client device 315 maygenerally maintain various authentication credentials for any identitiesmanaged locally to the operating system, or the operating system maycontact an authentication server 320 to obtain authenticationcredentials for any single sign-on identities that the operating systemdoes not locally manage. In one implementation, the authenticationserver 320 may therefore provide a single sign-on identity source thatcontains authentication credentials for every managed entity, whereinsingle sign-on identity management may be provided for any suitableworkload managed in the workload management system.

For example, in one implementation, the system and method for generatingsingle sign-on workload identities may be used to generate singlesign-on authentication tokens, wherein a workload engine 380 mayreference the single sign-on authentication tokens to provide identitymanagement for any suitable service request (e.g., to verify that anentity that requests a new service has proper authorization prior toactually provisioning the new service, to verify that an entity thatrequests access to an existing service has proper authorization prior togranting access to the service, etc.). For example, in oneimplementation, the authentication server 320 (e.g., Novell AccessManager) may communicate with an identity vault 325 that organizes useraccounts, roles, policies, and other identity information within variousdirectories. Thus, as shown by communication element 1 in FIG. 3 (oroperation 410 in FIG. 4), any suitable entity may submit anauthentication request to the authentication server 320, wherein theauthentication request may include single sign-on authenticationcredentials (e.g., a user name, identifier, password, smart card input,biometric input, etc.).

In one implementation, communication element 2 may then include theauthentication server retrieving the authentication credentials for therequesting entity from the federated identity information stored in theidentity vault 325. In an operation 420 (and communication element 3),the authentication server may then generate an authentication token forthe requesting entity from the authentication credentials retrieved fromthe identity vault 325, wherein the authentication token may represent aportable data abstraction that encapsulates any authoritative attribute,active role, valid policy, or other access credential for the entityassociated with the authorization token. As such, the authorizationtoken may mask any underlying credential authentication, identityfederation, and attribute attestation, wherein the authorization tokenmay be referenced to obtain authoritative statements that indicatewhether to authorize or deny any suitable request received from theentity associated with the authorization token. Furthermore, as shown bycommunication element 4 in FIG. 3, the authentication token may bereturned to the client device 315 that originated the request, wherebyany operating systems, applications, services or other resources on theclient device 315 that require authentication credentials may use theauthentication token to authenticate or deny local requests receivedfrom the entity associated with the authorization token.

In one implementation, the workload management system may include aworkload engine 380 that can use authentication tokens generated by theauthentication server 320 to manage workloads that include servicerequests. Furthermore, the workload engine 380 may use authenticationtokens for various entities that may be represented in multipledifferent authentication domains, which may enable workloads to functionacross different organizational boundaries. In particular, an operation430 (or communication element 5) may include receiving a workload thatdefines a particular service requested by the entity operating theclient device 315, wherein the entity may specify various additionalentities that may need access to the requested service. As such, anoperation 440 (or communication element 6) may include the workloadengine 380 managing the workload to obtain authentication tokens for therequesting entity in addition to authentication tokens for anyadditional entities specified in the request. Furthermore, as notedabove, the entities managed in the workload management system may definevarious types of customized identities, such that the authenticationtokens obtained in operation 440 (and communication element 6) mayrepresent authentication credentials for any suitable combination ofidentities that represent the requesting entity and/or the variousadditional entities (e.g., identities providing limited or completeanonymity, aggregated roles across various federated authenticationdomains, rights delegated to and/or by other identities, relative roleswith respect to other identities, etc.).

In one implementation, an operation 450 may then include the workloadengine 380 analyzing the authentication tokens obtained from theauthentication server 320 to identify any authentication credentialsthat the authentication tokens represent. As such, the workload engine380 may reference the identified authentication credentials in anoperation 460 to determine whether the identities for the requestingentity (and/or the additional entities) have proper authorization forthe requested service. The workload engine 380 may then generate anauthentication determination for the workload using the authenticationtokens that include federated identity information for the relevantidentities in addition to any policies that may be relevant to anyidentities involved in the workload (e.g., the client machine 315, otherservices or applications running on the client machine 315, or any othersuitable identity involved in a session associated with the workload, asdescribed in further detail above). Thus, in response to determiningthat the authentication tokens obtained from the authentication server320 indicate that one or more of the identities involved in the workloadlack proper authorization, an operation 470 (or communication element 7)may include the workload engine 380 notifying the requesting entity thatthe service request has been denied. Alternatively, in response todetermining that every identity involved in the workload has properauthorization, an operation 480 (or communication element 7) may includenotifying the requesting entity that the service request has beenapproved and subsequently provisioning the requested service.

Moreover, in response to approving the service request in operation 460,operation 480 may further include embedding the authentication tokensobtained in operation 440 (and communication element 6) within an imagecreated for the approved service. In particular, as described in furtherdetail above, any particular workload may include a request to provisiona new service, a request to update identities managed in an existingservice, or a another suitable request to manage identities associatedwith the approved service request. Thus, in one implementation,operation 480 may further include the workload engine 380 embedding theauthentication tokens within one or more virtual machine images thathost the service, whereby any suitable identity associated with thevirtual machine images may be managed with the single sign-onauthentication tokens obtained from the authentication server 380. Forexample, to configure a service newly provisioned to a virtual teamhaving various members, authentication tokens for the various teammembers may be embedded into a virtual machine image that an imagecreation system creates to host the new service. Similarly,authentication tokens for new members of the team may be embedded withinthe service image to grant the new members access to the service image,while authentication tokens for any members that leave the team may beremoved from the service image to prevent former members of the teamfrom continuing to have access to the service image. In another example,in response to determining that a subset of the team members have properauthorization credentials for the service and that other team memberslack proper authorization credentials, the tokens embedded within theimage may be limited to the subset having proper credentials, or theworkload management system may determine whether members lacking propercredentials have other managed identities with the proper credentialsand insert tokens within the image that correspond to the other managedidentities.

Thus, as described in further detail above with reference to FIG. 1A-B,authentication tokens generated at the single sign-on authenticationserver 380 may be used in various ways to pre-configure or re-configurea virtual machine with embedded authentication credentials foridentities managed in the virtual machine. Moreover, any suitableresource in the workload management system may reference theauthentication tokens embedded within the virtual machine to manage theidentities associated with the virtual machine, whereby the singlesign-on authentication tokens may generally provide a portable dataabstraction to run identity management services anywhere in the workloadmanagement system.

According to one aspect of the invention, FIG. 5A illustrates a blockdiagram of an exemplary service distribution 500A that can be managedwith one or more zero residue management agents 580 in the workloadmanagement system, while FIG. 5B illustrates an exemplary lifecycle 500Bfor the service distribution 500A managed with the zero residuemanagement agents 580. In particular, as shown in FIG. 5A, the workloadmanagement system may use various orchestrated virtualization servicesto create and manage a partitioned operating environment for the servicedistribution 500A, wherein the operating environment may be partitionedinto a physical distribution layer and a virtual distribution layer. Inone implementation, the physical distribution layer and the virtualdistribution layer may collectively define a standard partition modelfor the service distribution 500A, which may provide control overwhether to execute certain portions of the service distribution 500Aover physical hardware in a hosting environment or within virtualmachines that abstract any physical hardware that hosts the virtualmachines. As such, the standard partition model may permit the servicedistribution 500A to run anywhere in an infrastructure, regardless ofany requirements or limitations associated with underlying hardware orsoftware platforms, which may enable optimal utilization for the servicedistribution 500A.

In one implementation, the physical distribution layer in the servicedistribution 500A may provide an interface to physical hardwareresources that host components in the virtual distribution layer. Forexample, the physical distribution layer may include a minimalfunctional kernel 550 that bundles various hardware drivers matched tothe physical hardware that hosts the components in the virtualdistribution layer (e.g., local area network drivers, independenthardware vendor drivers, variable drivers that support certain hardwareplatforms, etc.). In one implementation, the physical distribution layermay further include a pluggable hypervisor 560, which may enable theservice distribution 500A to concurrently run various differentoperating systems 520 over the hosting physical hardware, and minimalcore packages 570 that provide software supporting functionality for thecomponents in the physical distribution layer. In addition, as will bedescribed in further detail below, the physical distribution layer mayfurther include an injection point 580 for dynamically inserting andremoving one or more zero residue management agents that can manage thelifecycle 500B for the service distribution 500A.

In one implementation, the virtual distribution layer in the servicedistribution 500A may provide a tuned appliance, which the physicaldistribution layer executes over any underlying physical hardware thathosts the service distribution 500A. In particular, the virtualdistribution layer may include a storage pointer 510 that identifies oneor more local or remote storage locations allocated to contain apersistent state for the service distribution 500A (e.g., within aclustered file system organized with storage replication and versionmanagement services), in addition to an operating system 520 thatincludes a minimal number of packages, patterns, or other softwarecomponents needed to support any applications 530 in the tuned appliance(e.g., the operating system 520 may include “just enough operatingsystem” (JeOS) 520 to support the applications 530 provided in theservice distribution 500A). In addition, the virtual distribution layermay include one or more configurations 540 that can be used to configurethe storage pointer 510, the operating system 520, and/or theapplications 530 in the virtual distribution layer, wherein theconfigurations 540 may define a workload profile for the servicedistribution 500A. For example, the workload profile may include variousbundled virtual drivers for tuning components in the virtualdistribution layer, attestation tokens defining unique identities andauthentication credentials for the components in the virtualdistribution layer, a service level declaration that defines any memory,processing, availability, disaster recovery, or other deploymentconstraints for the service distribution 500A.

Thus, the components in the virtual distribution layer may be neutralwith respect to the components in the physical distribution layer, whichmay enable the zero residue managements 580 to independently manage anyof the components in the virtual or physical distribution layers. Inparticular, the workload management system may employ one or morestandard formats to create images for the physical distribution layerand/or the virtual distribution layer and encapsulate the physicaldistribution image and/or the virtual distribution image within one ormore metadata wrappers. As such, the zero residue management agents 580may be dynamically deployed within the service distribution 500A tomanage various different modes during the lifecycle 500B of the servicedistribution 500A. For example, in response to initially creating theservice distribution 500A, the lifecycle 500B of the servicedistribution 500A may enter the creation mode, wherein a creationmanagement agent 580 may execute a bootstrap process to advertise thatthe service distribution 500A exists and appropriately download anyadditional management agents 580 to manage the different modes of thelifecycle 500B for the service distribution 500A.

For example, in one implementation, in response to the lifecycle 500Bchanging from one mode to another (e.g., from the creation mode througha release mode, a production mode, a test mode, a maintenance mode, anoptional re-release mode, and an eventual retirement mode), one or moreof the management agents 580 may be identified based on a current modein the lifecycle 5008 and dynamically inserted into the servicedistribution 500A. In another example, authentication tokens generatedusing the techniques shown in FIGS. 3 and 4 and described above may beembedded within the service distribution 500A, wherein the relevantmanagement agents 580 may be identified based on the embeddedauthentication tokens (e.g., in response to a trouble ticket requestfrom a user that describes a problem with a particular servicedistribution 500A that the user interacts with, the particular servicedistribution 500A may be located by searching for an servicedistributions 500A having an embedded authentication token associatedwith the user, and an appropriate management agent 580 may then bedeployed to the particular service distribution 500A having the embeddedauthentication token to diagnose or otherwise provide assistance inresolving the problem with the distribution 500A).

In one implementation, the identified management agent 580 may thenperform any management tasks associated with the current lifecycle mode,and in response to completing the management tasks, the management agent580 may then be removed from the service distribution 500A. In oneimplementation, removing the management agent 580 from the servicedistribution 500A may generally include removing any runtime stateassociated with the management agent 580 and rolling back any changesthat the management agent 580 applied to the service distribution 500Ain order to perform the management tasks. For example, a test managementagent 580 that executes during the test mode may disable a YaSTconfiguration tool 540 that otherwise controls installation and systemmanagement for the virtual distribution layer operating environment,whereby rolling back the changes applied to the service distribution500A may include re-enabling the YaST configuration tool in response tothe test management agent 580 completing the management tasks for thetest mode. In another example, a patch management agent 580 may beinserted into the service distribution 500A to patch or otherwise updateany suitable component in the service distribution 500A during themaintenance mode, wherein runtime states and temporary changes appliedby the patch management agent 580 may be removed from the servicedistribution 500A with the patch management agent 580 in response to themaintenance mode completing.

Thus, removing the runtime state associated with the management agents580 and any temporary changes that the management agents 580 applies tothe service distribution 500A during the various lifecycle modes mayensure that the service distribution 500A has been restored to a“golden” or “pristine” state prior to entering a next lifecycle mode. Inparticular, the zero residue management agents 580 may be dynamicallyinserted into the service distribution 500A to execute appropriatemanagement tasks for a current lifecycle mode, and then appropriatelyremoved in a manner that leaves the service distribution 500A unmodifiedexcept for any persistent changes that the management tasks apply to theservice distribution 500A. For example, during the maintenance mode, aconfiguration management agent 580 may be inserted into the servicedistribution 500A to modify the storage pointer 510 to point to a newlocal or remote storage location in response to an original storagelocation allocated to the service distribution 500A failing or runningshort on available storage resources, whereby the service distribution500A may be unchanged except for the modified storage pointer 510. Inanother example, a tuning management agent 580 may be similarly insertedinto the service distribution 500A during the maintenance mode toindependently apply any upgrades or other modifications that can tunefunctionality for the service distribution 500A (e.g., the tuningmanagement agent 580 may upgrade the kernel 550 and device drivers inthe physical distribution layer independently from security patchesapplied to the operating system 520 or applications 530 in the virtualdistribution layer, and in response to completing the upgrades, theservice distribution 500A may optionally be re-released to ensure thatsubsequent versions of the service distribution 500A automaticallyinclude the upgrades to the kernel 550 and device drivers and thepatches applied to the operating system 520 or applications 530).

In one implementation, one or more policies may define the managementagents 580 inserted into the service distribution 500A during thevarious modes of the lifecycle 500B. For example, a required servicelevel defined in the workload profile 540 may define a recipe for one ormore of the management agents 580 to inject into the servicedistribution 500A to ensure that the service distribution 500A meets orexceeds the required service level (e.g., a configuration managementagent 580 may modify the storage pointer 510 to ensure the servicedistribution 500A has sufficient storage capacity, a tuning managementagent 580 may modify the hypervisor 560 to prepare the servicedistribution 500A for migration to different physical host resourcesthat provide greater availability or performance, etc.). In otherexamples, the recipe for the management agents 580 may be determinedautomatically (e.g., based on the current mode), based on theapplications 530 hosted in the service distribution 500A and anymanagement that may be needed for such applications 530, or othersuitable criteria. Further, in one implementation, one or more of themanagement agents 580 may be persistently hosted in the servicedistribution 500A to capture activity and events that may be relevant toensuring and auditing compliance with policies, while one or morepolicies may control whether the service distribution 500A can move fromone lifecycle mode to another (e.g., the policies may restrict movingthe service distribution 500A from the creation mode to the release modeuntil the workload management system can ensure that the servicedistribution 500A meets certain sanity, safety, or policy constraints).

Thus, as described in further detail above, the zero residue managementagents 580 may provide control for various different modes that occurduring the lifecycle 500B of the service distribution 500A, including acreation mode for initially creating the service distribution 500A fromone or more images stored in a suitable repository, a release mode fordelivering the service distribution 500A to suitable entities that willinteract with or host the service distribution 500A, a production modefor deploying the service distribution 500A to such entities, a testmode for validating that the service distribution 500A functionscorrectly, a maintenance mode for debugging, patching, or otherwiseupdating the service distribution 500A, an optional re-release mode fordelivering subsequent versions of the service distribution 500A with anychanges applied during the production, test, or maintenance modes, andan eventual retirement mode for de-provisioning any existing versions ofthe service distribution 500A in response to the service distribution500A becoming outdated or obsolete.

According to one aspect of the invention, FIG. 6 illustrates a flowdiagram of an exemplary method 600 for managing different modes of aservice distribution lifecycle with zero residue management agents. Inparticular, the zero residue management agents shown in FIG. 5A anddescribed in further detail above may be used to manage the differentmodes of the service distribution lifecycle depending on a current modeof the service distribution. As such, managing the service distributionlifecycle may be initiated in an operation 610, wherein a managementworkload may be launched to manage the service distribution lifecycle.In particular, an operation 620 may include determining the current modeof the service distribution (e.g., creation, release, production, test,maintenance, etc.), wherein one or more management agents associatedwith the current mode may be executed in an operation 630. Themanagement agents associated with the current mode may then continuallyexecute any management tasks associated with the current mode until theworkload management system determines that the current mode of theservice distribution lifecycle has completed in an operation 640. Forexample, a monitoring management agent may be executed in operation 630during release, production, test, maintenance, or other appropriatemodes to capture events that may be relevant to monitoring the health ofthe service distribution, compliance with one or more policies, or othersuitable information. Thus, the monitoring agent may capture changesthat occur to the service distribution during the various lifecyclemodes, which may provide a record tracking or otherwise describing anevolution of the service distribution (e.g., for reference to diagnose,audit, or otherwise manage the service distribution).

As such, the management agents executed during operation 630 may add,remove, or disable aspects of the service distribution, wherein themanagement tasks executed during operation 630 may be controlled basedon the current lifecycle mode and any other information relevant tomanaging identities, policies, compliance, or other aspects of theinfrastructure (e.g., certain maintenance tasks may be limiting duringwell managed modes and restored in other modes). In one implementation,operation 640 may determine that the current mode of the servicedistribution lifecycle has completed based on one or more policies thatcontrol whether the service distribution lifecycle can move from onemode to another (e.g., the policies may define approval or rulevalidation mechanisms). Alternatively (or additionally), the currentmode of the lifecycle may complete in response to the management agentexecuted during operation 630 completing the relevant management tasks,in response to one or more changes to the service distribution thatindicate a change in mode, or other suitable criteria. In any case, inresponse to determining that the current mode of the servicedistribution lifecycle has completed in operation 640, the managementagent executed during operation 630 may then be removed from the servicedistribution in an operation 650, and a pristine or golden state for theservice distribution may then be restored in an operation 660. Forexample, in one implementation, restoring the state for the servicedistribution may include removing any runtime state associated with themanagement agent executed during operation 630 and rolling back anytemporary changes that the management agent applied to the servicedistribution during operation 630.

Thus, in response to restoring the state for the service distribution inoperation 660, the service distribution may be in the golden or pristinestate prior to entering a next mode of the lifecycle (including anypersistent changes that the management agents applied to the servicedistribution during operation 630). In particular, an operation 670 mayinclude determining whether or not to retire the service distribution(e.g., in response to the service distribution including outdated orobsolete components), wherein the service distribution may then beretired in an operation 680. For example, retiring the servicedistribution in operation 680 may include de-provisioning any existingversions of the service distribution, de-allocating any resourcesassociated with the existing versions of the service distribution,migrating information to persistent repositories to enable subsequentauditing of the lifecycles for the de-provisioned service distributions,or other suitable tasks for removing the service distribution fromoperation in the infrastructure. Alternatively, in response to operation670 determining that the service distribution will not be retiring, themethod 600 may return to operation 620 to identify a next mode of theservice distribution lifecycle and initiate execution of one or moremanagement agents for the identified mode. As such, the method 600 mayiteratively insert management agents into the service distribution basedon the current mode and then remove the management agents from theservice distribution until the service distribution eventually retiresin operation 680.

According to one aspect of the invention, FIG. 7 illustrates a blockdiagram of an exemplary system 700 for controlling cloud and virtualizeddata centers in the intelligent workload management system. Inparticular, as noted above, cloud and virtualized data centers generallyinclude various dynamically allocated resources that can haveunpredictable characteristics. Thus, the system 700 shown in FIG. 7 anddescribed herein may coordinate such dynamically allocated resources ina closed-loop management infrastructure that can manage declarativepolicies, fine-grained access controls, and orchestrated management andmonitoring tools. For example, the system 700 may operate in theworkload management system described in further detail above, and mayprovide a mechanism to automatically create images that can be deployedto a public cloud (or cloud data center) 790 a that may be external toan information technology infrastructure, and which can further bedeployed to a private cloud (or virtualized data center) 790 b that maybe local to the infrastructure. In addition, the system 700 may be usedto install software contained in licensed software repositories 710 a,source code repositories 710 b, or other suitable software sources ontoany images that have been deployed to the public cloud 790 a or theprivate cloud 790 b, control and audit activity that occurs in theimages deployed to the public cloud 790 a or the private cloud 790 b,establish and retrieve network addresses (e.g., IP addresses, DHCPaddresses, etc.) for cloned images across various operating platforms(e.g., Windows platforms, Linux platforms, etc.), and analyze any impactthat the activity occurring in the images deployed to the public cloud790 a or the private cloud 790 b may have on other machines or images.

As such, the system 700 shown in FIG. 7 and described herein maygenerally include various features that can provide predictability incontrolling images, virtual machines, or other resources that have beendeployed to the public cloud 790 a and/or the private cloud 790 b. Inparticular, in one implementation, the system 700 may include a licensedsoftware repository 710 a that contains licensed software, a source coderepository 710 b that contains software source code, or any othersuitable software repository. In one implementation, the licensedsoftware in the licensed software repository 710 a, the software sourcecode in the source code repository 710 b, or other software may theninstalled over suitable hardware resources to create one or morehardware installations 720 a, installed on a virtual machine to createone or more virtual machine installations 720 b, and/or built within asuitable build system to create one or more auto build installations 720c. In one implementation, in response to installing or otherwisecreating the hardware installations 720 a, the virtual machineinstallations 720 b, and the auto build installations 720 c, anappropriate management agent 725 may be inserted into the installation720. In particular, the management agent 725 may provide functionalityfor performing various tasks to manage the licensed software, sourcecode, or other software included in the installations 720. For example,in one implementation, the tasks performed by the management agents 725may include retrieving DHCP addresses, establishing static IP addresses,providing remote debugging assistance, and inserting one or morepersonality tools 775 (e.g., privileged user management) for theinstallations 720.

In one implementation, the hardware installations 720 a, virtual machineinstallations 720 b, and auto build installations 720 c may each furtherinclude a respective identity service 727 that provides a uniqueidentity for the respective installations 720. For example, in oneimplementation, the identity services 727 may generally includeauthentication tokens that define one or more federated authorizationsor permissions for the respective installations 720 (e.g., across aplurality of authentication domains), as described in further detailabove. As such, the management agents 725 inserted into the varioussoftware installations 720 may interact with the identity services 727that define the authorizations or permissions for the various softwareinstallations 720 to uniquely identify and manage the variousinstallations 720. For example, in addition to defining theauthorizations or permissions for the various installations 720, theidentity services 727 may further identify versions, builds, or otherinformation that can uniquely identify the licensed software, sourcecode, or other software included in the installation, which may enablemanagement for such licensed software, source code, or other software(e.g., in response to detecting updates to the licensed software, sourcecode, or other software in the licensed software repository 710 a or thesource code repository 710 b, the integrated identity services 727 maybe referenced to identify and appropriately update any installations 720that may have been created from the updated software).

In one implementation, in response to creating the various softwareinstallations 720 and embedding the suitable management agents 725 a andidentity services 727, various operational images may be created fromthe software installations 720. In particular, the virtual machineinstallations 720 b and the auto build installations 720 c may generallyinclude one or more virtual machine images, as described in furtherdetail above, while the hardware installations 720 a may generallyinclude software that executes directly over underlying hardwareresources. The operational images created from the virtual machineinstallations 720 b and the auto build installations 720 c may thereforeinclude the virtual machine images included therein, wherein theoperational virtual machine images may be provided to an imagemanagement system 740 that stores the operational virtual machine imagesin a shared repository 750 a (e.g., an image repository). With respectto the hardware installations 720 a that include software executingdirectly over underlying hardware resources rather than virtual machineimages, a migration system 730 may provide functionality that can createa suitable operational virtual machine image from the hardwareinstallations 720 a. The migration system 730 may evaluate any licensedsoftware, source code, packages, or other software included in thehardware installations 720 a and create operational virtual machineimages that can run in a virtualized environment. For example, in oneimplementation, the migration system 730 may include a Novell PlateSpinMigrate system 730, a VMware vCenter Converter system 730, or any othersuitable migration system 730 that provides conversion or migrationservices between physical and virtual platforms. The operational virtualmachine image created from the hardware installation 720 a may then beprovided to the image management system 740, which may store theoperational virtual machine image in the shared repository 750 a in asimilar manner as the virtual machine installations 720 b and the autobuild installations 720 c.

In one implementation, in response to providing the operational imagescreated from the hardware installations 720 a, the virtual machineinstallations 720 b, and the auto build installations 720 c to the imagemanagement system 740, the image management system 740 may automaticallystore the operational images in the shared repository 750 a in responseto determining that the operational images do not need to be tested foroperational integrity (e.g., because the operational images include anattestation token indicating that the operational images have alreadypassed operational integrity tests). Alternatively, the image managementsystem 740 may optionally invoke a testing engine 745 a that performsone or more operational integrity tests for the operational images priorto storing the operational images in the shared repository 750 a. Forexample, the operational integrity tests performed by the testing engine745 a may test the operational images against various test scriptsdesigned to verify integrity for the operational images (e.g.,validating checksums, installer functionality, etc.). Thus, in responseto the testing engine 745 a determining that one or more of theoperational images have passed the operational integrity tests, suchoperational images may be released to the shared repository 750 a.Alternatively, in response to the testing engine 745 a determining thatone or more of the operational images did not pass the operationalintegrity tests, the image management system 740 may invoke a validationengine 740 that supervises debugging and revalidation for suchoperational images (e.g., generating a validation workload to coordinatecollaborative interaction among various entities that debug andrevalidate the operational images until the operational imageseventually pass the operational integrity tests). The validation engine745 b may then re-invoke the testing engine 745 a to determine whetherthe operational images have been debugged or otherwise revalidated in amanner that results in the operational images passing the integritytests, wherein the operational images may be released to the sharedrepository 750 a in response to passing the integrity tests or preventedfrom such release in response to not passing the integrity tests.

In one implementation, the system 700 may further include a discoveryengine 760 that continually monitors the shared repository 750 a todetect whether one or more operational images have been newly added tothe shared repository 750 a. Further, in one implementation, the imagemanagement system 740, the shared repository 750 a, or another suitablecomponent in the system 700 may generate an event in response to one ormore operational images being added to the shared repository 750 a,wherein the event may notify or otherwise advertise the new operationalimages to the discovery engine 760. In one implementation, in responseto the discovery engine 760 detecting the new operational images in theshared repository 750 a or receiving the event notifying or advertisingthe new operational images in the shared repository 750 a, the discoveryengine 760 may prepare the operational images for deployment to thepublic cloud 790 a or the private cloud 790 b. In particular, variouspublic clouds 790 a and private clouds 790 b may support different imageformats, wherein the discovery engine 760 may convert the operationalimages into the appropriate image format for the public cloud 790 a orprivate cloud 790 b where the operational images will be deployed (e.g.,an Amazon Machine Image format for the Amazon Elastic Compute Cloud).Thus, the cloud image repository 750 b may contain various cloud imagescreated from the operational images in the shared repository 750 a,wherein the various cloud images may be in various different formatsdepending on the image format for the public cloud 790 a or privatecloud 790 b that will host the cloud images.

In one implementation, in response to storing the cloud images in thecloud image repository 750 b, an image deployment system 770 may beinvoked to deploy the cloud images to the appropriate public cloud 790 aor private cloud 790 b. In one implementation, prior to deploying thecloud images to the appropriate public cloud 790 a or private cloud 790b, the image deployment system 770 may invoke an impact analysis engine780 that determines a potential impact of deploying the cloud images tothe public cloud 790 a or private cloud 790 b. In particular, deployingthe cloud images to the public cloud 790 a or private cloud 790 b maygenerally include various deployment processes (e.g., starting,stopping, cloning, or migrating the cloud images). Thus, the impactanalysis engine 770 may reference a configuration management database785 to validate whether the cloud images can be suitably deployed to thepublic cloud 790 a or the private cloud 790 b. For example, the impactanalysis engine 770 may reference the configuration management database785 to verify that other resources detailed in the configurationmanagement database 785 will not be adversely affected by deploying thecloud images (e.g., because the deployment may require substantialbandwidth during a period of peak network traffic). Furthermore, theimpact analysis engine 770 may communicate with an audit service 795, aprivileged user management service 792, or other monitoring servicesprovided in the public cloud 790 a or the private cloud 790 b to enhancethe impact analysis (e.g., determining whether conditions in the publiccloud 790 a or private cloud 790 b may have adverse impacts on thedeployment, local infrastructure resources, etc.).

In one implementation, in response to the impact analysis engine 770determining that deploying the cloud images does not raise potentialadverse impacts, or alternatively in response to resolving any suchpotential adverse impacts, the image deployment system 770 may deploythe cloud images in the cloud image repository 750 b to the appropriatepublic cloud 790 a or private cloud 790 b. Further, in oneimplementation, the operational images in the shared repository 750 amay already be appropriate for deployment into the public cloud 790 a orprivate cloud 790 b without requiring conversion to a cloud imageformat, in which case the image deployment system 770 may similarlydeploy the operational images in the shared repository 750 a to thepublic cloud 790 a or private cloud 790 b. In one implementation, todeploy the cloud images or operational images to the public cloud 790 aor private cloud 790 b, the image deployment system 770 may clone ormodify the cloud images or operational images (e.g., to preserve anoriginal version of the cloud images or operational images prior to thecloud deployment). As such, in response to cloning or modifying theimages prior to the cloud deployment, the image deployment system 770may inject a new or aggregated identity service 777 into the cloned ormodified images, wherein the new or aggregated identity service 777 mayprovide a record that identifies a lineage, pedigree, or otherrelationships for the cloned or modified images. Furthermore, the imagedeployment system 770 may inject one or more personality tools 775 intothe cloned or modified images in response to determining that thepersonality tools 775 have not already been injected (e.g., duringcreation of the original software installations 720). For example, asnoted above, the personality tools 775 may generally include tools forprivileged user management, remote debugging, or customizing base images(e.g., certain scripts may be applied to a Linux base image in order tocustomize the base image for particular functions that the imageprovides).

In one implementation, the image deployment system 770 may then deploythe cloud images or the operational images to the appropriate publiccloud 790 a or private cloud 790 b, wherein the deployed images may bemanaged in the public cloud 790 a and the private cloud 790 b. Forexample, as noted above, the images may include embedded managementagents 725 that can control and track any activity associated with thedeployed images through interaction with the embedded identity services727, including verifying that the images comply with any relevantpolicies or restricting any activity that may not comply with therelevant policies, as described in further detail above. Further,because the management agents 725, identity services 727 (and/or 777),and personality tools 775 embedded in the images can control, track, andmonitor activities for the images that have been deployed to the publiccloud 790 a and the private cloud 790 b, the monitored activity may beprovided to an audit service 795 that can remediate the activity inresponse to any problems with the images, provide compliance assurancefor the activity associated with the images, or otherwise analyzeactivity that occurs in the images following deployment to the publiccloud 790 a or the private cloud 790 b. Similarly, the embedded identityservices 727 (and/or 777) may interact with a privileged user managementservice 792 in the public cloud 790 a or the private cloud 790 b,wherein the privileged user management service 792 and the audit service795 may cooperate in various ways to remediate, assure compliance, orotherwise analyze the activity that occurs in the images followingdeployment to the public cloud 790 a or the private cloud 790 b.

According to one aspect of the invention, FIG. 8 illustrates a flowdiagram of an exemplary method 800 for controlling cloud and virtualizeddata centers in the intelligent workload management system. Inparticular, the method 800 may generally operate in the system 700 shownin FIG. 7 and described in further detail above, whereby the method 800may provide predictability in controlling images, virtual machines, orother resources that have been deployed to public clouds (or cloud datacenters) and private clouds (or virtualized data centers). For example,as noted above in connection with FIG. 7, control over the cloud datacenters and the virtualized data centers may be provided through variousfeatures that can automatically create and deploy images to the publicclouds and the private clouds, install software from repositories thatcontain licensed software, source code, or other software onto theimages deployed to the public or private clouds, control and auditactivity that occurs in the deployed images, establish and retrievenetwork addresses or other network configurations for cloned imagesacross various operating platforms, and analyze impacts that activityoccurring in the deployed images may have on other machines or images togenerate appropriate decisions for managing and controlling the datacenters provided in the public and private clouds.

In particular, in one implementation, the method 800 may retrievelicensed software from a licensed software repository, software sourcecode from a source code repository, or other software from anothersuitable repository, wherein an operation 810 may include creating asoftware installation from the licensed software, the software sourcecode, or the other software. In one implementation, the softwareinstallation created in operation 810 may include a hardwareinstallation installed over suitable hardware resources, a virtualmachine installation installed on a virtual machine, and/or an autobuild installation built using a suitable build system. In response toinstalling or otherwise creating the software installation in operation810, an appropriate management agent may then be embedded in thesoftware installation in an operation 820. For example, the managementagent embedded in the software installation in operation 820 may providefunctionality for performing various tasks to manage the licensedsoftware, source code, or other software included in the softwareinstallation (e.g., DHCP address retrieval, static IP addressassignment, remote debugging, personality or privileged user managementinsertion, etc.).

In one implementation, operation 820 may further include embedding anidentity service within the software installation created in operation810. In particular, the identity service may generally provide a uniqueidentity for the software installation, and may further include anauthentication token that defines one or more federated authorizationsor permissions for the software installation across a plurality ofauthentication domains. As such, the management agent and the identityservice embedded in the software installation in operation 820 mayinteract with one another, whereby the management agent may referencethe identity service to determine a unique identity for the softwareinstallation, resolve the authorizations or permissions for the softwareinstallation from the unique identity, and otherwise manage the softwareinstallation. For example, in addition to defining authorizations orpermissions that control resources that the software installation canaccess, the identity service may further identify a version, build, orother information that uniquely identifies the licensed software, sourcecode, or other software included in the installation. As such, theinteraction between the management agent and the identity service may beused to manage the licensed software, source code, or other softwareincluded in the installation. For example, in one implementation, theembedded management agent may reference the embedded identity service todetermine whether the installation was created from licensed software,source code, or other software that has been updated in the licensedsoftware repository or the source code repository and then appropriatelyupdate the installation in response to determining that the installationwas created from the updated software.

In one implementation, in response to creating the software installationand embedding the management agent and the identity service, anoperational image may be created from the software installation. Inparticular, an operation 825 may include determining whether thesoftware installation includes a hardware installation, a virtualmachine installation, or an auto build installation, wherein virtualmachine installations and auto build installations generally include oneor more virtual machine images, as described in further detail above.Thus, in response to determining that the software installation includesa virtual machine installation or an auto build installation inoperation 825, creating the operational image may include providing thevirtual machine images included therein to an image management systemthat stores the operational virtual machine images in a sharedrepository (e.g., an image repository). Alternatively, hardwareinstallations may generally include software that executes directly overunderlying hardware resources, whereby an operation 830 may includecreating a virtual machine from the hardware installation to prepare thehardware installation for migration to a virtualized environment. Inparticular, operation 830 may invoke a migration system providingfunctionality for creating operational virtual machine images fromhardware installations, wherein the migration system may evaluate anylicensed software, source code, packages, or other software included inthe hardware installation and appropriately create the operationalvirtual machine image. For example, the migration system may includeNovell PlateSpin Migrate, VMware vCenter Converter, or any othermigration system that provides conversion or migration services betweenphysical and virtual platforms. The operational virtual machine imagecreated from the hardware installation may then be provided to the imagemanagement system, which may store the operational virtual machine imagein the shared repository in a similar manner as for virtual machineinstallations or auto build installations.

In one implementation, in response to providing the operational imagecreated from the software installation to the image management system,an operation 835 may include determining whether or not to test theoperational images for operational integrity. For example, an operation860 may include the image management system automatically storing theoperational image in the shared repository in response to determiningthat the operational image does not need to be tested (e.g., because theoperational image includes an attestation token indicating that theoperational image has already passed operational integrity tests).Alternatively, an operation 840 may include the image management systemoptionally invoking a testing engine that runs one or more operationalintegrity tests for the operational image prior to storing theoperational image in the shared repository. For example, the operationalintegrity tests run in operation 840, may test the operational imageagainst various test scripts designed to verify integrity for theoperational image (e.g., validating checksums, installer functionality,etc.). Thus, an operation 845 may include determining whether theoperational image passed the operational integrity tests, wherein theoperational image may be released to the shared repository in operation860 in response to the operational image passing the integrity tests.Alternatively, in response determining that the operational image didnot pass the operational integrity tests in operation 845, a validationengine may be invoked in an operation 850, wherein the validation enginemay supervise debugging and revalidation for the operational image(e.g., generating a debugging workload to coordinate collaborativeinteraction among various entities associated with the failedoperational image). The validation engine may then re-invoke operation840 to determine whether the operational image has been debugged orotherwise revalidated in a manner that results in the operational imagepassing the integrity tests, wherein the operational image may bereleased to the shared repository in operation 860 in response topassing the integrity tests, whereas the operational image may beiteratively debugged and revalidated in operations 840 through 850 untilthe operational image successfully passes the integrity tests.

In one implementation, a discovery engine may continually monitor theshared repository to detect whether the operational image has been newlyadded to the shared repository. Alternatively, the image managementsystem, the shared repository, or another component may generate anevent in response to adding the operational image to the sharedrepository, wherein the event may notify or otherwise advertise the newoperational image to the discovery engine. Thus, in response to thediscovery engine detecting that the new operational image has been addedto the shared repository or receiving the event notifying or advertisingthe new operational image in the shared repository, an operation 870 mayinclude generating a cloud image to prepare the operational image fordeployment to the public cloud or the private cloud. In particular,various public clouds and private clouds may support different imageformats, wherein operation 870 may include converting the operationalimage into the appropriate image format for the public cloud or privatecloud where the operational image will be deployed (e.g., an AmazonMachine Image format for the Amazon Elastic Compute Cloud). Thus, thecloud image created in operation 870 may be in a cloud image format thatdepends on an image format used in the public cloud or private cloudthat will host the cloud image created in operation 870.

In one implementation, in response to generating the cloud image inoperation 870, an image deployment system may be invoked to deploy thecloud image to the appropriate public cloud or private cloud. In oneimplementation, prior to deploying the cloud images to the appropriatepublic cloud or private cloud, an operation 875 a may includedetermining whether to invoke an impact analysis engine that determinesa potential impact of deploying the cloud images to the public cloud orprivate cloud. In particular, deploying the cloud images to the publiccloud or private cloud may generally include various deploymentprocesses (e.g., starting, stopping, cloning, or migrating the cloudimages), wherein the impact analysis optionally performed in operation875 a may include referencing a configuration management database tovalidate whether the cloud images can be suitably deployed to the publiccloud or the private cloud. For example, the impact analysis engine mayreference the configuration management database to verify that otherresources detailed in the configuration management database will not beadversely affected by deploying the cloud images (e.g., because thedeployment may require substantial bandwidth during a period of peaknetwork traffic). Furthermore, the impact analysis engine maycommunicate with an audit service, a privileged user management service,or other monitoring services provided in the public cloud or the privatecloud to enhance the impact analysis (e.g., determining whetherconditions in the public cloud or private cloud may have adverse impactson the deployment, local infrastructure resources, etc.). As such, inresponse to determining that potential adverse impacts may result fromdeploying the image to the cloud in an operation 875 b, the image may berevalidated in operation 850, or operation 850 may include otherprocesses to resolve the adverse impacts.

In one implementation, in response to determining that deploying thecloud image does not raise potential adverse impacts in operation 875 b,or alternatively in response to resolving any such potential adverseimpacts, an operation 880 may include deploying the cloud image to theappropriate public cloud or private cloud. Further, in oneimplementation, the operational image stored in the shared repository inoperation 860 may already be appropriate for deployment into the publiccloud or private cloud without requiring conversion to a cloud imageformat in operation 870, in which case operation 880 may includesimilarly deploying the operational image stored in operation 860 to thepublic cloud or private cloud. In one implementation, to deploy thecloud images or operational images to the public cloud or private cloud,operation 880 ma include cloning or modifying the cloud image or theoperational image (e.g., to preserve an original version of the cloudimage or operational image prior to the deployment operation 880). Assuch, in response to cloning or modifying the image prior to the clouddeployment, operation 880 may further include injecting a new oraggregated identity service into the cloned or modified image, whereinthe new or aggregated identity service may provide a record thatidentifies a lineage, pedigree, or other relationships for the cloned ormodified image. Furthermore, operation 880 may include injecting one ormore personality tools into the cloned or modified image in response todetermining that the personality tools have not already been injected(e.g., during creation of the original software installation inoperations 810 and 820). For example, as noted above, the personalitytools may generally include tools for privileged user management, remotedebugging, or customizing base images (e.g., certain scripts may beapplied to a Linux base image in order to customize the base image forparticular functions that the image provides).

In one implementation, operation 880 may then include deploying thecloud image or the operational image to the appropriate public cloud orprivate cloud, wherein operation 880 may further include managing theimage deployed to the public or private cloud. For example, as notedabove, the image may include an embedded management agent that cancontrol and track any activity associated with the deployed imagethrough interaction with the embedded identity service, includingverifying that the image complies with any relevant policies orrestricting any activity that may not comply with the relevant policies,as described in further detail above. Further, because the managementagent, identity service, and personality tools embedded in the image cancontrol, track, and monitor activities for the image deployed to thepublic or private cloud, operation 880 may include providing themonitored activity to an audit service in the cloud that can remediateany problems with the image, provide compliance assurance for theactivity associated with the image, or otherwise analyze the activitythat occurs in the image following deployment to the cloud. Similarly,the embedded identity service may interact with a privileged usermanagement service in the cloud, wherein the privileged user managementservice and the audit service in the cloud may cooperate in various waysto remediate, assure compliance, or otherwise analyze the activity thatoccurs in the image following deployment to the cloud.

Implementations of the invention may be made in hardware, firmware,software, or various combinations thereof. The invention may also beimplemented as instructions stored on a machine-readable medium, whichmay be read and executed using one or more processing devices. In oneimplementation, the machine-readable medium may include variousmechanisms for storing and/or transmitting information in a form thatcan be read by a machine (e.g., a computing device). For example, amachine-readable storage medium may include read only memory, randomaccess memory, magnetic disk storage media, optical storage media, flashmemory devices, and other media for storing information, and amachine-readable transmission media may include forms of propagatedsignals, including carrier waves, infrared signals, digital signals, andother media for transmitting information. While firmware, software,routines, or instructions may be described in the above disclosure interms of specific exemplary aspects and implementations performingcertain actions, it will be apparent that such descriptions are merelyfor the sake of convenience and that such actions in fact result fromcomputing devices, processing devices, processors, controllers, or otherdevices or machines executing the firmware, software, routines, orinstructions.

Furthermore, aspects and implementations may be described in the abovedisclosure as including particular features, structures, orcharacteristics, but it will be apparent that every aspect orimplementation may or may not necessarily include the particularfeatures, structures, or characteristics. Further, where particularfeatures, structures, or characteristics have been described inconnection with a specific aspect or implementation, it will beunderstood that such features, structures, or characteristics may beincluded with other aspects or implementations, whether or notexplicitly described. Thus, various changes and modifications may bemade to the preceding disclosure without departing from the scope orspirit of the invention, and the specification and drawings shouldtherefore be regarded as exemplary only, with the scope of the inventiondetermined solely by the appended claims.

1. A system for controlling cloud and virtualized data centers in anintelligent workload management system, comprising: at least onesoftware installation having an embedded management agent; anauthentication server that embeds an identity service in the at leastone software installation, wherein the embedded identity serviceincludes an authentication token defining authorizations or permissionsfor a unique identity assigned to the software installation; an imagemanagement system that stores a virtual machine image created from thesoftware installation in a shared repository; a cloud image repositorythat stores a cloud image created from the virtual machine image in theshared repository, wherein the cloud image created from the virtualmachine image includes the embedded management agent and the embeddedidentity service; and an image deployment system that deploys the cloudimage with the embedded management agent and the embedded identityservice into a cloud computing environment.
 2. The system of claim 1,further comprising: a licensed software repository that stores licensedsoftware; and a source code repository that stores software source code,wherein the at least one software installation is created from at leastone of the licensed software stored in the licensed software repositoryor the software source code stored in the source code repository.
 3. Thesystem of claim 1, wherein the at least one software installationincludes at least one of a virtual machine installation or an auto buildinstallation that includes the virtual machine image created from thesoftware installation.
 4. The system of claim 3, wherein the at leastone software installation includes a hardware installation that includessoftware installed directly over one or more physical hardwareresources, and wherein the system further comprises a migration systemthat creates the virtual machine image from the software installeddirectly over the one or more physical hardware resources.
 5. The systemof claim 1, wherein the image management system includes: a testingengine that runs a plurality of operational integrity tests against thevirtual machine image created from the software installation andreleases the virtual machine image to the shared repository in responseto the virtual machine image passing the plurality of operationalintegrity tests; and a validation engine that restricts releasing thevirtual machine image to the shared repository in response to thevirtual machine image failing one or more of the plurality ofoperational integrity tests, wherein the validation engine restrictsreleasing the virtual machine image to the shared repository until avalidation workload controlled by the embedded management agent and theembedded identity service results in the virtual machine image passingthe plurality of operational integrity tests.
 6. The system of claim 5,further comprising a discovery engine that creates the cloud image fromthe virtual machine image in response to detecting that the virtualmachine image has been released to the shared repository, or in responseto receiving an event advertising that the virtual machine image hasbeen released to the shared repository.
 7. The system of claim 6,wherein the discovery engine converts the virtual machine image into animage format associated with the cloud computing environment to createthe cloud image from the virtual machine image.
 8. The system of claim1, wherein the image deployment system includes an impact analysisengine that determines whether deploying the cloud image into the cloudcomputing environment will create one or more potential adverse impactsin an information technology infrastructure, and wherein the imagedeployment system is configured to: deploy the cloud image into thecloud computing environment in response to the impact analysis enginedetermining that deploying the cloud image will not create any potentialadverse impacts in the information technology infrastructure; and deploythe cloud image into the cloud computing environment in response to theimpact analysis engine determining that deploying the cloud image willcreate one or more potential adverse impacts in the informationtechnology infrastructure and resolving the one or more potentialadverse impacts.
 9. The system of claim 1, wherein the image deploymentsystem creates a clone of the cloud image deployed into the cloudcomputing environment and embeds a new or aggregated identity service inthe clone of the cloud image, wherein the new or aggregated identityservice embedded in the clone of the cloud image records a lineage forthe cloud image.
 10. The system of claim 1, wherein the cloud computingenvironment includes an audit service and a privileged user managementservice that interact with the management agent and the identity serviceembedded in the cloud image to control, monitor, and audit activity thatoccurs in the cloud image following deployment to the cloud computingenvironment.
 11. A method for controlling cloud and virtualized datacenters in an intelligent workload management system, comprising:creating at least one software installation having an embeddedmanagement agent; embedding, by an authentication server, an identityservice in the at least one software installation, wherein the embeddedidentity service includes an authentication token definingauthorizations or permissions for a unique identity assigned to thesoftware installation; storing, by an image management system, a virtualmachine image created from the software installation, wherein the imagemanagement system stores the virtual machine image created from thesoftware installation in a shared repository; storing, in a cloud imagerepository, a cloud image created from the virtual machine image,wherein the cloud image created from the virtual machine image includesthe embedded management agent and the embedded identity service; anddeploying, by an image deployment system, the cloud image with theembedded management agent and the embedded identity service into a cloudcomputing environment.
 12. The method of claim 11, further comprising:storing licensed software in a licensed software repository; and storingsoftware source code in a source code repository, wherein the at leastone software installation is created from at least one of the licensedsoftware stored in the licensed software repository or the softwaresource code stored in the source code repository.
 13. The method ofclaim 11, wherein the at least one software installation includes atleast one of a virtual machine installation or an auto buildinstallation that includes the virtual machine image created from thesoftware installation.
 14. The method of claim 13, wherein the at leastone software installation includes a hardware installation that includessoftware installed directly over one or more physical hardwareresources, and wherein the method further comprises creating, by amigration system, the virtual machine image from the software installeddirectly over the one or more physical hardware resources.
 15. Themethod of claim 11, further comprising: running, by a testing engine, aplurality of operational integrity tests against the virtual machineimage created from the software installation; releasing the virtualmachine image to the shared repository in response to the virtualmachine image passing the plurality of operational integrity tests,wherein a validation engine restricts releasing the virtual machineimage to the shared repository in response to the virtual machine imagefailing one or more of the plurality of operational integrity tests; andreleasing the virtual machine image to the shared repository in responseto a validation workload controlled by the embedded management agent andthe embedded identity service resulting in the virtual machine imagepassing the plurality of operational integrity tests.
 16. The method ofclaim 15, further comprising: creating the cloud image from the virtualmachine image in response to a discovery engine detecting the release ofthe virtual machine image to the shared repository; and creating thecloud image from the virtual machine image in response to the discoveryengine receiving an event advertising the release of the virtual machineimage to the shared repository.
 17. The method of claim 16, whereincreating the cloud image from the virtual machine image includesconverting the virtual machine image into an image format associatedwith the cloud computing environment.
 18. The method of claim 11,further comprising determining, by an impact analysis engine, whetherdeploying the cloud image into the cloud computing environment willcreate one or more potential adverse impacts in an informationtechnology infrastructure, wherein deploying the cloud image into thecloud computing environment includes: deploying the cloud image into thecloud computing environment in response to the impact analysis enginedetermining that deploying the cloud image will not create any potentialadverse impacts in the information technology infrastructure; anddeploying the cloud image into the cloud computing environment inresponse to the impact analysis engine determining that deploying thecloud image will create one or more potential adverse impacts in theinformation technology infrastructure and resolving the one or morepotential adverse impacts.
 19. The method of claim 11, furthercomprising: creating, by the image deployment system, a clone of thecloud image deployed into the cloud computing environment; andembedding, by the image deployment system, a new or aggregated identityservice in the clone of the cloud image, wherein the new or aggregatedidentity service embedded in the clone of the cloud image records alineage for the cloud image.
 20. The method of claim 11, wherein thecloud computing environment includes an audit service and a privilegeduser management service that interact with the management agent and theidentity service embedded in the cloud image to control, monitor, andaudit activity that occurs in the cloud image following deployment tothe cloud computing environment.